我需要一些關於如何在單元測試中使用Moq的建議,以確保我的課程能夠以我想要的方式運行。這是被測試的課程發佈了一個Event Aggregator(來自Prism)事件,我需要某種方式來斷言這個事件在我的測試中已經提出。使用Moq進行單元測試的嘲諷Prism Event Aggregator
我在工作中沒有太多的資源,並且發現很難知道如何設置它。
我: -
public SomeEvent : CompositePresentationEvent<SomeEvent>
{
EventPayload
}
public SomeClass
{
void Allocate(){EventAggregator.Publish<SomeEvent>}
}
public SomeService : IService
{
SomeService(){ EventAggregator.Subscribe<SomeEvent>(DoSomething)}
void DoSomething(SomeEvent evt){}
}
我想,如果我的測試是SomeClass的我需要驗證,如果我叫SomeClass.Allocate被髮表SomeEvent消息。這是如何完成的?
我是否還需要驗證模擬的SomeService是否正在接收SomeEvent?或者是屬於SomeService單元測試而不是SomeClass的單獨單元測試?
無論如何,不知道如何設置任何這個,所以任何意見將不勝感激。
本示例使用「構造函數依賴注入」,因爲在SomeClass構造函數期間注入對IEventAggregator的依賴。 – 2010-11-12 13:50:16
很好的答案,這幫了我很多。 – user630190 2012-03-20 13:15:31