如何在wpf中对视图模型和Mvvm应用程序模型进行单元测试

本文关键字:模型 Mvvm 应用程序 单元测试 视图 wpf | 更新日期: 2023-09-27 18:19:28

你能给我推荐一些关于如何对MVVM应用程序的视图模型和模型进行单元测试的资源吗。

我将使用rhino-mock作为模拟测试框架。

令人惊讶的是,我找不到任何具体的资源Josh Smith 的MVC到单元测试

但这对我没有帮助。

谢谢你的帮助。

如何在wpf中对视图模型和Mvvm应用程序模型进行单元测试

ReactiveUI+Moq+Fluent断言的示例。

正如@Raghu已经指出的,测试常规类没有真正的区别,但可能有一些新的维度,比如如何测试基于时间的效果。这可以通过使用测试调度器的反应式扩展方法来回答。

在我博客中的一个例子中:

public class WordCounterViewModel : ReactiveObject {
 public WordCounterViewModel(IObservable<string> someBackgroundTicker)
 {
  ...
 }
...
}

测试,包括一个模拟模型:

[TestMethod]
public void WordCounterViewModelTest()
{
    var mock = new Mock<IObservable<string>>();
    var vm = new WordCounterViewModel(mock.Object);
    vm.WordCount.Should().Be(0);
    vm.TextInput = "bla!";
    vm.WordCount.Should().Be(1);
    vm.TextInput = "bla, bla!!";
    vm.WordCount.Should().Be(2);
}

如果您知道如何创建和运行单元测试,那么现在就应该能够测试视图模型了。

单元测试ViewModel与测试常规类没有任何不同。这就是MVC的美妙之处。您在视图中所做的就是调用方法。

我想您应该寻找如何编写可测试代码,而不是寻找为MVC编写单元测试的资源。

我建议您使用此链接:http://www.netsoft-usa.com/2010/09/unit-testable-code-using-model-view-presenter/