2010-02-02 63 views
2

目前,我们正在从NMock2迁移到RhinoMocks,我们遇到了麻烦复制此代码:动态订阅事件在RhinoMocks

foreach (EventInfo e in typeof(MarketMapPopupIMVPView).GetEvents()) 
    Expect.Once.On(mockView).EventAdd(e.Name, new TypeMatcher(typeof(EventHandler))); 

本质上讲,这是放置MVC模板内控制,以确保开发人员使用该模板实际上是在视图中列出的Presenter中布置事件。问题是,我们不知道事件发生的原因,并将名称放在我们似乎无法在RhinoMocks中找到的方式。

+0

我不认为这是可能的。 (我试图断言对e.AddEventListener的调用,然后动态地构建一个表达式树来传递给AssertWasCalled的动作,但都不起作用。)考虑到你实际上应该测试事件处理程序在事件发生时的作用,而不仅仅是它被连接起来。如果不知道事件,你就不能这么做。 – 2010-02-02 13:19:21

+0

是的,这只是我们通过将NMock放置在我们的一些模板中而获得的一些免费内容,以确保开发人员实际上布置了他们的活动。 幸好这不算太大,但它会很好。 – 2010-02-02 21:58:13

回答