所以我是新来的犀牛制品和我想要得到它打算在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");
}
,但我一直在DoStuff
方法中获得(在期望建立)一个空引用异常,因为视图对象为null。这就是我卡住的地方。我已经调用了Init
方法,该方法分配了View
属性的值,并且我认为期望设置的要点是该方法本身没有被调用过?
你在测试什么? – Gutzofter 2009-01-08 10:02:06