【发布时间】:2011-03-23 19:24:53
【问题描述】:
我需要一些关于如何在单元测试中使用 Moq 的建议,以确保我的被测类的行为符合我的要求。也就是说,被测类发布了一个事件聚合器(来自 Prism)事件,我需要某种方式来断言该事件已在我的测试中引发。
我没有太多的工作资源,我发现很难知道如何设置它。
我有:-
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 的单独单元测试?
无论如何,不知道如何设置,所以任何建议都将不胜感激。
【问题讨论】:
标签: unit-testing nunit mocking moq eventaggregator