如何对System.Windows.Application.Run()进行单元测试
本文关键字:单元测试 Run Application System Windows | 更新日期: 2023-09-27 18:34:16
我正在尝试为以下方法编写单元测试:
public override void Run()
{
base.Run();
this.wpfApplication.Run();
}
请注意,"this.wpfApplication"是System.Windows.Application的一个实例。
我正在使用Microsoft的测试资源管理器来运行我的测试(在VS Express 2013中)。
如果我运行单元测试,它将挂在.运行() 行。
如何创建单元测试来运行此方法?
我已经有一个单元测试来测试基类对 Run 方法的实现。 基类是支持控制台和 WPF 应用的框架的一部分。
与我调用 .NET 类方法的几乎所有其他情况一样,我最终编写了一个接口(例如 IWpfRun
),并在我的单元测试中使用了模拟实现。 这确实意味着我需要在我的构造函数中做更多的事情(因为我需要指定要使用的实现)。
现在,我的单元测试关注的是我的方法,而不是混合关注 .NET 类方法,例如运行 WPF 应用程序、记录到文件等。
我的IWpfRun
接口有 2 个实现。 一个是我的 WpfRun
类,它包装了 System.Windows.Application.Run
方法以覆盖我的接口的 Run
方法。 第二个实现是我的 WpfRunMock
类,它通过更新属性来覆盖相同的方法。 我可以断言在调用 Run
方法后属性值已更新。