silverlight MVVM模式中的单元测试viewmodel

silverlight MVVM模式中的单元测试viewmodel,silverlight,unit-testing,mvvm,Silverlight,Unit Testing,Mvvm,我需要使用prism在Silverlight应用程序中对视图模型进行单元测试。这里,需要测试的视图模型只有一个构造函数,它将Dispatcher和EventAggregator作为参数: public MyViewModel( IDispatcher dispatcher, IEventAggregator aggregator ) : base(dispatcher, aggregator) {...} 如何在我的代码中模拟Dispatcher和EventAggregator

我需要使用prism在Silverlight应用程序中对视图模型进行单元测试。这里,需要测试的视图模型只有一个构造函数,它将
Dispatcher
EventAggregator
作为参数:

public MyViewModel( IDispatcher dispatcher, IEventAggregator aggregator )
        : base(dispatcher, aggregator) {...}

如何在我的代码中模拟Dispatcher和EventAggregator参数,以便创建我的视图模型的实例?

两个ctor参数都是由接口抽象的,因此对于UnitTest,您可以编写两个模拟,每个模拟实现一个接口,并使用它们

public class DispatcherMock : IDispatcher { ... }
public class EventAggregatorMock : IEventAggregator { ... }

var sut = new MyViewModel(new DispatcherMock(), new EventAggregatorMock());
…或者您可以添加(我正在使用的模拟框架)并让框架处理接口细节,您不必自己实现它:

var dispatcherMock = new Mock<IDispatcher>();
var aggregatorMock = new Mock<IEventAggregator>();
var sut = new MyViewModel(dispatcherMock.Object, aggregatorMock.Object);
var dispatcherMock=new Mock();
var aggregatorMock=new Mock();
var sut=新的MyViewModel(dispatcherMock.Object、aggregatorMock.Object);