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