2016-05-23 41 views
2

我已經去了一個非常簡單的計算器,我試圖測試當一個按鈕被點擊時標籤是否被更新。Swift - 當一個按鈕被點擊時,你如何測試一個標籤是否已經更新

我的測試方法是這樣的:

let app = XCUIApplication() 
app.buttons["9"].tap() 

我可以直觀地看到標籤被更新,但我不知道如何測試它。

我想我需要使用XCUIElementQuery API來查詢標籤,然後聲明標籤文本已更改。我只是不知道該怎麼做。

我不知道以下問題:

  • 我需要知道這個值是標籤可以查詢?
  • 有沒有一種方法來查詢標籤而不知道應用程序啓動時的值是什麼?

回答

4

通過UI測試,您可能需要以不同的方式考慮您的問題。不要斷言更改了,而是檢查新的東西是否存在

實際上,這意味着檢查是否出現了具有期望值的標籤。不要檢查現有的已更改爲正確的狀態。

因此,在您的示例中,您可以執行以下操作。這將檢查當你點擊「9」按鈕時出現帶有文字「42」的標籤。

let app = XCUIApplication() 
app.buttons["9"].tap() 
XCTAssert(app.staticTexts["42"].exists) 
+0

請問'''staticTexts'''是指標籤文本還是可以引用按鈕的文本值? – breaktop

+0

'staticTexts'只能引用標籤,對'UIButton'使用'buttons'。 –

5

我會說你設置不同accessibilityLabelaccessibilityIdentifier您要挖掘,然後前後tap()後的值進行比較,並檢查是否label已經使用XCTAssertNotEqual斷言改變了按鈕,

在應用程序代碼:

button.accessibilityIdentifier = "TappableButton"

然後,在測試文件:

let app = XCUIApplication() let buttonLabel = app.buttons["TappableButton"].label app.buttons["TappableButton"].tap() XCTAssertNotEqual(buttonLabel, app.buttons[TappableButton].label)

相關問題