Xcode UI测试:如何测试应用程序的第一次启动
我在xCode 7.1中编写UITest,并且具有在首次启动时测试应用程序的功能。问题是:如何检查是否第一次启动应用程序。 我需要的是这样的:Xcode UI测试:如何测试应用程序的第一次启动
func testFirstLaunching() {
if ("app is launched for the first time") {
//test scenario of first launching
}
else {
//invoke func that will test other scenario
}
}
有谁知道任何把戏该如何检查? 应用程序正在使用NSUserDefaults,也许Xcode测试有一个超级强大的功能来访问它?
任何建议将是宝贵的)
这里是一个手动解决您的问题!
- 创建您的第一个提出的ViewController一个全局变量,让它假
- 在您的viewDidLoad,它的值更改为true
- 将它保存
- 在
testFirstLaunching()
,看了你的变量 的价值
- 使用if语句做任何你想做的事
希望这有助于:)
这是正确的思维方式,但我可以用同样的方式阅读NSUserDefaults。问题是如何通过** XCTestCase **类对象或通过** XCUIApplication()**?)访问它(或ViewController中的全局变量)?) –
访问什么?你的意思是你想访问应用程序是否每个VC至少打开过一次? – LinusGeffarth
嗨Linus,你能告诉我们更多关于如何从你的测试代码中检查一个变量吗? 'XCUIApplication'是否有读取用户默认值的方法? – JMFR
,我知道,你可以,如果这样的语句做。问题是如何放入if块。也许你可以检查导航栏标题的存在。 ''' 如果(app.staticTexts [“我的主屏幕”。存在){进行正常的应用程序的东西} 其他{假设你是第一个推出} ''' – JMFR
很好的想法,我试过这种方法,但在我的情况问题是导航标题出现在登录窗口(通过网络登录,所以这会导致一些延迟),所以检查导航标题waitForExpectationsWithTimeout(超时)功能是必要的,如果它是第一次启动 - 一个窗口出现(一个导航标题),如果它不是第一次启动 - 出现另一个窗口(所以我们有不同的静态文本)。 所以超时测试失败后,如果没有找到正确的标题(和问题是标题是不同的)。 –