1

我正在使用 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();
  }
}
4

1 回答 1

2

尼克,我建议你把这个反馈给工作。您基本上找到了一个完美的例子,说明为什么 100% 覆盖率通常不是大多数人遵守的标准。我个人建议我工作的公司更加务实。存在收益递减的情况,覆盖率越高,您当然可以通过询问自己,这将实际测试什么来节省 UI 应用程序的大量时间。

您拥有的代码将显示一个带有视图模型的应用程序视图窗口。您可以使用WhiteWiPFlash等库来提供简单的方法来确认这一点,但您真正要做的就是确认 windows 已经完成了它的工作。稍后您可能会测试单击按钮会导致在文本框中显示一个值,这具有更多价值,但可以通过调用 ViewModel 命令并随后检查视图模型状态来轻松模拟。

这是您的选择,我建议两者都尝试,但这些天我将我的 View 命名空间排除在所有覆盖率计数之外。

于 2012-09-17T09:24:14.963 回答