2015-11-05 67 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

相關問題