我想编写一些模拟以下内容的单元测试:
1.) User starts my app
2.) User quits my app (unexpectantly during some operation)
3.) User restarts my app
4.) Unit test then checks to see that my code recovered from this.
使用这些说明设置 UWP 单元测试后,我可以看到单元测试项目在 UnitTestApp.xaml 文件中创建了一个测试 UWP 应用.cs如下所示:
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
// Ensure the current window is active
Window.Current.Activate();
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);
理想情况下,我想在单个单元测试中以某种方式杀死/退出/中止此窗口(或其框架或??(,然后重新启动它并进行此单元测试,后续单元测试将继续。
如果这不可行,那么我只想知道其他人如何创建处理其应用程序的退出和重新启动的单元测试。
我更喜欢Visual Studio 2015的答案,但Visual Studio 2017的说明也会有所帮助。
可以像winui一样从测试用例启动和控制应用程序, UAPApp.Launch将帮助您启动应用程序。 我没有看到关于UAPApp.Launch的公共文档,签名可以在Microsoft.Windows.Apps.Test.chm中找到
例如,对于导航视图测试,TestEnvironment做到了魔术:
public static void ClassInitialize(TestContext testContext)
{
TestEnvironment.Initialize(testContext);
}
如果你深入研究TestEnviroment,CreateApplication
函数将新建应用程序,最后在Application.cs中,testapp通过以下方式启动:
return UAPApp.Launch(_appName, topLevelWindowCondition);