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

C# 如何在wpf中对Mvvm应用程序的视图模型和模型进行单元测试,c#,wpf,unit-testing,rhino-mocks,C#,Wpf,Unit Testing,Rhino Mocks,您能为我推荐一些关于如何单元测试viewmodel和MVVM应用程序模型的资源吗 我将使用rhino mock作为模拟测试框架 令人惊讶的是,我找不到任何具体的资源 但这对我没有帮助 感谢您的帮助。单元测试ViewModel与测试常规类没有任何区别。这就是MVC的魅力所在。您在视图中所做的就是调用这些方法 我想您应该寻找如何编写可测试代码,而不是寻找为MVC编写单元测试的资源 我向您推荐以下链接:一个带有++的示例 正如@Raghu已经指出的,测试普通类没有什么真正的区别,但是可能有一些新的维

您能为我推荐一些关于如何单元测试viewmodel和MVVM应用程序模型的资源吗

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

令人惊讶的是,我找不到任何具体的资源

但这对我没有帮助


感谢您的帮助。

单元测试ViewModel与测试常规类没有任何区别。这就是MVC的魅力所在。您在视图中所做的就是调用这些方法

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

我向您推荐以下链接:

一个带有++的示例

正如@Raghu已经指出的,测试普通类没有什么真正的区别,但是可能有一些新的维度,比如如何测试基于时间的效果。这可以通过使用响应式扩展方法来解决

在我的示例中:

公共类WordCounterViewModel:ReactiveObject{
public WordCounterViewModel(IObservable 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);
}
[TestMethod]
public void WordCounterViewModelTest()
{
var mock=new mock();
var vm=新的WordCounterViewModel(mock.Object);
vm.WordCount.Should()为(0);
vm.TextInput=“bla!”;
vm.WordCount.Should()为(1);
vm.TextInput=“bla,bla!!”;
vm.WordCount.Should()为(2);
}

如果您知道如何创建和运行单元测试,您现在应该能够测试viewmodels。

您可能需要编辑您的问题,因为它是当前的。。。要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。
[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);
}