首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nmock2和事件预期

Nmock2和事件预期
EN

Stack Overflow用户
提问于 2010-03-12 01:40:23
回答 1查看 1.5K关注 0票数 1

我正在为一个遵循MVP模式的小应用程序编写测试。

从技术上讲,我知道我应该在编写代码之前编写测试,但我需要快速智能地创建一个演示应用程序,所以我现在在进入真正的开发之前回到测试中。

简而言之,我正在尝试测试presenter,但是由于Internal.ExpectationException的原因,我甚至无法运行空测试。

异常在意外调用事件赋值时引发。

下面是presenter类,

代码语言:javascript
复制
   public LBCPresenter(IView view, IModel model)
   {
        m_model = model;

        m_model.BatteryModifiedEvent += new EventHandler(m_model_BatteryModifiedEvent);
   }

模型接口

代码语言:javascript
复制
    public interface IModel
    {
         event EventHandler BatteryModifiedEvent;
    }

这是测试类,我看不到我遗漏了什么,我告诉NMock期待这个事件……

代码语言:javascript
复制
    [TestFixture]
public class MVP_PresenterTester
{
    private Mockery mocks;
    private IView _mockView;
    private IViewObserver _Presenter;
    private IModel _mockModel;

    [SetUp]
    public void SetUp()
    {
        mocks = new Mockery();

        _mockView = mocks.NewMock<IView>();
        _mockModel = mocks.NewMock<IModel>();
        _Presenter = new LBCPresenter(_mockView, _mockModel);

    }

    [Test]
    public void TestClosingFormWhenNotDirty()
    {
         Expect.Once.On(_mockModel).EventAdd("BatteryModifiedEvent", NMock2.Is.Anything);

       //makes no difference if following line is commented out or not
       //mocks.VerifyAllExpectationsHaveBeenMet();
    }
}

每次运行测试时,我都会得到相同的期望异常。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2010-04-27 18:38:11

我认为这是一个时间问题-你在测试设置中调用presenter构造函数-这意味着事件添加在你的测试设置EventAdd期望之前发生。

如果您将调用移动到EventAdd预期之下的presenter构造函数,它应该可以工作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2427272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档