如何单元测试App.OnStartup

时间:2012-09-17 06:11:31

标签: wpf unit-testing mvvm

我正在使用MVVM编写WPF应用程序,所以我在App中重写OnStartup以设置View的ViewModel。很快,在工作中,完成的定义将包括100%的代码覆盖率,所以我现在试图在我自己的项目中养成习惯。我无法弄清楚如何测试这个功能:

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();
  }
}

1 个答案:

答案 0 :(得分:2)

尼克,我建议你重新开始工作。你基本上找到了一个完美的例子,说明为什么100%的覆盖率通常不是大多数人所遵循的标准。 就个人而言,我建议我工作的公司更务实。有一个收益递减的情况,你去的覆盖率越高,当然对于UI应用程序,你可以通过问自己来节省大量时间,这实际上会测试什么。

您拥有的代码将显示带有视图模型的应用程序视图窗口。您可以使用诸如WhiteWiPFlash之类的库来提供确认此方法的简便方法,但是您所做的一切就是确认Windows已完成其工作。稍后您可能会发现,单击按钮会导致在文本框中显示一个值,这会有更多的值,但可以通过调用ViewModel命令并在之后检查视图模型状态来轻松模拟。

这是您的选择,我建议同时尝试两种方法,但这些天我将View命名空间排除在所有覆盖范围内。