如何对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 应用的框架的一部分。

如何对System.Windows.Application.Run()进行单元测试

与我调用 .NET 类方法的几乎所有其他情况一样,我最终编写了一个接口(例如 IWpfRun ),并在我的单元测试中使用了模拟实现。 这确实意味着我需要在我的构造函数中做更多的事情(因为我需要指定要使用的实现)。

现在,我的单元测试关注的是我的方法,而不是混合关注 .NET 类方法,例如运行 WPF 应用程序、记录到文件等。

我的IWpfRun接口有 2 个实现。 一个是我的 WpfRun 类,它包装了 System.Windows.Application.Run 方法以覆盖我的接口的 Run 方法。 第二个实现是我的 WpfRunMock 类,它通过更新属性来覆盖相同的方法。 我可以断言在调用 Run 方法后属性值已更新。