我需要使用prism对Silverlight应用程序中的视图模型进行单元测试。这里需要测试的视图模型只有一个构造函数,它将Dispatcher
和EventAggregator
作为参数:
public MyViewModel( IDispatcher dispatcher, IEventAggregator aggregator )
: base(dispatcher, aggregator) {...}
如何在我的代码中模拟Dispatcher
和EventAggregator
参数,以便创建我的视图模型的实例?
答案 0 :(得分:1)
两个ctor参数都是通过接口抽象的,所以对于你的UnitTest,你可以编写两个模拟器,每个模块实现一个接口并使用它们......
public class DispatcherMock : IDispatcher { ... }
public class EventAggregatorMock : IEventAggregator { ... }
var sut = new MyViewModel(new DispatcherMock(), new EventAggregatorMock());
...或者您可以添加moq.silverlight
(我正在使用的模拟框架)并让框架处理接口详细信息,您不必自己实现它:
var dispatcherMock = new Mock<IDispatcher>();
var aggregatorMock = new Mock<IEventAggregator>();
var sut = new MyViewModel(dispatcherMock.Object, aggregatorMock.Object);