1
在僅包含具有20行的表視圖的應用程序中,它們全部包含文本「單元格X」,X是行的索引,我有以下測試:防止訪問不存在的元素失敗測試
func testTwentyFirstRow()
{
let cell = XCUIApplication().staticTexts["Cell 20"]
let label = cell.label
XCTAssert(label == "Cell 20", "Label is not equal to Cell 20")
}
此測試失敗,與以下錯誤
No matches found for Find: Elements matching predicate '"Cell 20" IN identifiers' from input {(
StaticText, 0x60800019b930, traits: 8589934656, label: 'Cell 0',
...
StaticText, 0x60800019d740, traits: 8589934656, label: 'Cell 19'
)}
第二行是否有任何阻止它失敗存在,但有它失敗的下一行,而不是在那裏我主張的價值標籤?
但是由於'cell.exists'和'cell.label'是在應用程序的不同狀態下執行的,所以有可能在cell.label執行時單元不再存在。儘管如此,我可能會過分簡化我的問題。我真正的問題是,我有一臺視頻播放器在視頻播放完畢後消失,這使我的測試失敗。 –
它應該是一個近乎即時的檢查,因爲將使用相同的快照來檢查存在和標籤。你能否延長視頻以穩定測試?或者,標籤檢查測試可以很好地作爲單元測試,在那裏你可以模擬未經測試的實體。 – Oletha