当前位置:  开发笔记 > 编程语言 > 正文

初学者犀牛模拟问题

如何解决《初学者犀牛模拟问题》经验,为你挑选了1个好方法。

所以我是犀牛嘲笑的新手,我正试图让它进入我正在进行的MVP模式项目.所以我有一个代表我的View的界面和一个我的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();
  var presenter = mocks.StrictMock();

  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(在期望设置期间),因为View对象为null.这就是我被困住的地方.我已经调用了Init方法,它分配了View属性的值,我认为期望设置的重点是方法本身从未被调用过?



1> 小智..:

看起来你正在测试Rhino Mocks.您正在嘲笑视图和演示者.我将假设模仿主持人是不可取的,你应该只模仿视图.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有