2015-11-05 37 views
0

我在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测试有一个超级强大的功能来访问它?

任何建议将是宝贵的)

+0

,我知道,你可以,如果这样的语句做。问题是如何放入if块。也许你可以检查导航栏标题的存在。 ''' 如果(app.staticTexts [“我的主屏幕”。存在){进行正常的应用程序的东西} 其他{假设你是第一个推出} ''' – JMFR

+0

很好的想法,我试过这种方法,但在我的情况问题是导航标题出现在登录窗口(通过网络登录,所以这会导致一些延迟),所以检查导航标题waitForExpectationsWithTimeout(超时)功能是必要的,如果它是第一次启动 - 一个窗口出现(一个导航标题),如果它不是第一次启动 - 出现另一个窗口(所以我们有不同的静态文本)。 所以超时测试失败后,如果没有找到正确的标题(和问题是标题是不同的)。 –

回答

0

这里是一个手动解决您的问题!

  1. 创建您的第一个提出的ViewController一个全局变量,让它假
  2. 在您的viewDidLoad,它的值更改为true
  3. 将它保存
  4. testFirstLaunching(),看了你的变量
  5. 的价值
  6. 使用if语句做任何你想做的事

希望这有助于:)

+0

这是正确的思维方式,但我可以用同样的方式阅读NSUserDefaults。问题是如何通过** XCTestCase **类对象或通过** XCUIApplication()**?)访问它(或ViewController中的全局变量)?) –

+0

访问什么?你的意思是你想访问应用程序是否每个VC至少打开过一次? – LinusGeffarth

+0

嗨Linus,你能告诉我们更多关于如何从你的测试代码中检查一个变量吗? 'XCUIApplication'是否有读取用户默认值的方法? – JMFR

相关问题