【发布时间】:2009-01-08 03:12:58
【问题描述】:
所以我是 rhino mocks 的新手,我正在尝试在我正在进行的 MVP 模式项目中使用它。所以我有一个代表我的视图的接口和一个用于我的 Presenter 的类,如下所示:
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");
}
但我不断从 DoStuff 方法中得到 null 引用异常(在期望设置期间),因为 View 对象为 null。这就是我卡住的地方。我调用了Init 方法,它分配了View 属性的值,我认为期望设置的重点是该方法本身从未被调用过?
【问题讨论】:
标签: .net rhino-mocks