2016-12-05 13 views
1

私は私のアプリのための私のXCUITest年代を書いています。 私はしかし、それはそれはなぜ誰かが私に言うことができる5.スウィフトエラー「独自の初期値内で使用される変数」

let timeout = NSTimeInterval() 
    let app = XCUIApplication() 

    let exists = NSPredicate(format: "exists == 1") 
    let alert = alert.buttons["OK"] 


    testCase.addUIInterruptionMonitorWithDescription("Enable Notifications") { (alert) -> Bool in 
      alert.buttons["OK"].tap() 
     return true 
    } 

    self.buttons["Enable notifications"].tap() 
    testCase.expectationForPredicate(exists, evaluatedWithObject: alert, handler: nil) 
    testCase.waitForExpectationsWithTimeout(timeout, handler: nil) 
    app.tap() 

ライン上alertの宣言にエラーVariable used within its own initial valueを投げている....私のテストを非同期に行うためにwaitForExpectationsWithTimeoutを使用するためには、アラートを宣言していますこのエラーを投げ、私がこれを解決するために何ができるかを示します。前もって感謝します。

答えて

4

あなたのラインにはありませんので、 5、あなたが書いている

let alert = alert.buttons["OK"] 

警告はこの行の前に宣言されていないので、これを書くことはできません。

例えば、それはの価値を知らないよう

let a = a+5 

今、コンパイラは同じエラーがスローされます、このケースを取る「」それは以前に宣言されていなかったとして。

+0

さて、私はどのように事前に警告する必要がありますか? –

+0

私はXcode Testsに精通していません。ちょうどあなたの質問に答えました。これをインターネットで見つけた後に、alert = app.alerts.elementBoundByIndex(0).buttons ["OK"] - 一度試してみてください – Aakash

+0

このリンクを試してみてくださいhttp://stackoverflow.com/questions/32148965/ xcode-7-ui-testing-how-to-dismiss-a-series-of-system-alerts-in-codeまたはこれに関する知識を持つ人の回答を待つ – Aakash

関連する問題