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