だから私はサイのモックに慣れていないので、私が取り組んでいるMVPパターン化されたプロジェクトでそれを始めようとしています。したがって、ビューを表すインターフェイスとプレゼンターのクラスを次のように取得しました。
public interface IView {
string SomeData { get; set; }
}
public class Presenter {
public IView View { get; set; }
public void Init(IView view) {
this.View = view;
}
public virtual string DoStuff(){
return "Done stuff with " + this.View.SomeData;
}
}
そして、メソッドをモックするテストをセットアップしようとしているDoStuff
ので、次のような基本的なフィクスチャがあります。
[TestMethod]
public void Test(){
var mocks = new MockRepository();
var view = mocks.Stub<IView>();
var presenter = mocks.StrictMock<Presenter>();
presenter.Init(view);
using(mocks.Record()){
presenter.Expect(p => p.DoStuff()).Return("Mocked result");
}
string result = string.Empty;
using(mocks.Playback()){
result = presenter.DoStuff();
}
Assert.AreEqual(result, "Mocked result");
}
しかし、View オブジェクトが null であるため、メソッド内から(期待値のセットアップ中に) null 参照例外が発生し続けます。DoStuff
そして、これは私が立ち往生しているところです。Init
プロパティの値を割り当てるメソッドを呼び出しましたView
が、メソッド自体が呼び出されなかったことが期待設定のポイントだと思いましたか?