使用 XCUI 测试用例测试 UICollectionView 无限滚动

Testing UICollectionView infinite scroll with XCUI Test case

如何在我的一个集合视图中测试无限滚动?我尝试像 "pull to refresh" example 中解释的那样模拟滚动,但没有成功。

let app = XCUIApplication()
let start = app.coordinateWithNormalizedOffset(CGVectorMake(1, 6))
let finish = app.coordinateWithNormalizedOffset(CGVectorMake(1, 0))
var x = 0
while(x < 20){
  x++
  start.pressForDuration(0, thenDragToCoordinate: finish)
}

(while 条件只是为了测试,我会把它改成在滚动起作用时询问特定元素是否存在)

如果您只是测试无限滚动,您可能不需要下降到坐标级别 API。相反,只需像用户滚动一样滑动集合视图。

let app = XCUIApplication()
let newCell = app.staticTexts["Page 2 Item"]
XCTAssertFalse(newCell.exists)

app.collectionView.element.swipeUp()
XCTAssert(newCell.exists)