我想写一些模拟以下内容的单元测试:
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.
有了setup UWP Unit tests using these instructions,我可以看到Unit Test项目在UnitTestApp.xaml.cs文件中创建了这样的测试UWP应用:
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
// Ensure the current window is active
Window.Current.Activate();
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);
理想情况下,我想以某种方式在单个单元测试中杀死/退出/中止该窗口(或其框架或??),然后重新启动它并进行此单元测试,然后继续进行后续的单元测试。 / p>
如果这不可行,那么我想知道其他人如何创建处理退出和重新启动其应用程序的单元测试。
我希望获得Visual Studio 2015的答案,但有关Visual Studio 2017的说明也将有所帮助。
答案 0 :(得分:0)
可以像测试winui一样从测试用例中启动和控制应用程序, UAPApp.Launch将帮助您启动该应用程序。 我没有看到有关UAPApp.Launch的公开文档,可以在Microsoft.Windows.Apps.Test.chm
中找到签名。例如,对于navigationview测试,TestEnvironment发挥了魔力:
public static void ClassInitialize(TestContext testContext)
{
TestEnvironment.Initialize(testContext);
}
如果您深入研究TestEnviroment,则CreateApplication
函数将创建新的Application,最后在Application.cs中,testapp将通过以下方式启动:
return UAPApp.Launch(_appName, topLevelWindowCondition);