单元测试silverlight MVVM模式中的viewmodel

时间:2014-04-15 22:34:31

标签: silverlight unit-testing mvvm

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

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

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

1 个答案:

答案 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);