Wpf 如何对App.OnStartup进行单元测试
我正在使用MVVM编写一个WPF应用程序,因此我将覆盖应用程序中的OnStartup以设置视图的ViewModel。很快,在工作中,“完成”的定义将包括100%的代码覆盖率,所以我现在在家里努力养成自己项目的习惯。我不知道如何测试此功能:Wpf 如何对App.OnStartup进行单元测试,wpf,unit-testing,mvvm,Wpf,Unit Testing,Mvvm,我正在使用MVVM编写一个WPF应用程序,因此我将覆盖应用程序中的OnStartup以设置视图的ViewModel。很快,在工作中,“完成”的定义将包括100%的代码覆盖率,所以我现在在家里努力养成自己项目的习惯。我不知道如何测试此功能: public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); V
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
ViewModel.MainViewModel vm = new ViewModel.MainViewModel();
View.MainView v = new View.MainView();
v.DataContext = vm;
v.Show();
}
}
尼克,我建议你把这些反馈给工作。你基本上找到了一个完美的例子,说明为什么100%的覆盖率通常不是大多数人遵守的标准。 我个人建议我工作的公司更加务实。有一种情况是,覆盖率越高,回报率就越小。当然,对于UI应用程序,您可以通过问自己,这将实际测试什么来节省大量时间 您的代码将显示一个带有视图模型的应用程序视图窗口。您可以使用诸如或之类的库来提供确认这一点的简单方法,但是您真正要做的就是确认windows已经完成了它的工作。稍后,您可能会验证单击按钮会在文本框中显示一个值,这具有更多的值,但也可以通过调用ViewModel命令并随后选中视图模型状态来轻松模拟
这是您的选择,我建议您尝试这两种方法,但现在我将视图名称空间排除在所有覆盖范围之外 您应该避免在代码中编写此类函数。在编写测试用例之前。你应该学习棱镜。这对MVVM非常有效。这很有趣。我从一个在微软工作的人那里看到的视频中学会了这样做。他可能想展示一些与WPF框架无关的东西。因为对于每个POC,您不会选择MVVM、Prism等,因为这会使您的演示更加复杂。如果您遵循prism、MVVM和WPF,那么您很少会陷入这样的代码场景。