【问题标题】:How to Unit Test View Model and Model of a Mvvm application in wpf如何在 wpf 中对 Mvvm 应用程序的视图模型和模型进行单元测试
【发布时间】:2014-08-26 06:59:56
【问题描述】:
【问题讨论】:
-
您可能需要编辑您的问题,因为它目前是off topic... 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与 Stack Overflow 无关,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
标签:
c#
wpf
unit-testing
rhino-mocks
【解决方案1】:
ReactiveUI + Moq + Fluent Assertions 的示例。
正如@Raghu 已经指出的那样,测试常规课程并没有真正的区别,但可能会有一些更新的维度,例如如何测试基于时间的效果。这可以通过使用Test Scheduler 的响应式扩展方法来回答。
以我的blog为例:
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);
}
如果您知道如何创建和运行单元测试,那么您现在应该能够测试您的视图模型了。