현재 MVP 모델에있는 발표자를 테스트하는 테스트가 있습니다. 제 발표자에게는 제 견해가 조롱받는 제 견해로 전화 할 재산이 있습니다. 내 테스트 초기화에서 발표자의 내 View를 조롱 된보기로 설정 한 후에이 메서드를 호출하는 Presenter에서 내 속성을 설정합니다.) IView.MethodToInvoke (; 내 테스트에서Rhino Mock을 사용하는 이유는 테스트 초기화 동안 속성에서 조롱 된 호출이 예상 호출 # 1, 실제 호출 # 0을 반환하는 이유는 무엇입니까?
나는 호출하는 방법에 대한 Expect.Call이없는, 아직 내가 실행할 때 나는이 코뿔소 모의 예외를 얻을 :
Rhino.Mocks.Exceptions.ExpectationViolationException을 예상 # 1, 실제 # 0 ..
내가 예상하는 블록 밖에서 모의를 호출하는 한 Rhino 모의가 이해하는대로 녹음하지 않아야합니다. 시험 합격을 상상할 것입니다. 지나 가지 않는 이유가 있습니까?
다음은 설정을 보여주는 몇 가지 코드입니다.
public class Presenter
{
public IView View;
public Presenter(IView view)
{
View = view
}
private int _property;
public int Property
get { return _property;}
set
{
_property = value;
View.MethodToInvoke();
}
}
... 다음은 테스트 코드 ...
[TestInitialize]
public void Initilize()
{
_mocks = new MockRepository();
_view = _mocks.StrictMock<IView>();
_presenter = new Presenter(_view);
_presenter.Property = 1;
}
[TestMethod]
public void Test()
{
Rhino.Mocks.With.Mocks(_mocks).Expecting(delegate
{
}).Verify(delegate
{
_presenter.SomeOtherMethod();
});
}
다시 말하지만, 당신은 확신 엄격한 조롱이 필요해? 당신의 시나리오는 당신이 모든 기대치를 지정하도록 강요하지 않는 평범한 모의를 사용하는 것과 비슷합니다. AAA를 사용하는 경우 코드를 작성하는 것이 훨씬 간단합니다. –