2010-02-02 67 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

回答