私は現在、私がMVPモデルで持っているプレゼンターをテストするテストを持っています。私の発表者には、私のテストで嘲笑された私のビューに呼び出すプロパティがあります。私のテストの初期化では、プレゼンターのビューをモックされたビューに設定した後、このメソッドを呼び出すプレゼンターにプロパティを設定しました。Rhino Mockを使用すると、テストの初期化中にプロパティを嘲笑して呼び出すと、実際の呼び出し#1、実際の呼び出し#0が返されるのはなぜですか?
私のテストでは、私は私が呼び出すメソッドのExpect.Callを持っていない、まだ私が実行したときに、私はこのRhinoのモックの例外を取得:
Rhino.Mocks.Exceptions.ExpectationViolationException:IView.MethodToInvoke();予想される#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を使用する場合は、コードを書く方がはるかに簡単です。 –