如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是不是存在?
Posted
技术标签:
【中文标题】如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是不是存在?【英文标题】:how to write UI test to test whether image existing when click the first cell in an UITableView?如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是否存在? 【发布时间】:2015-11-11 03:21:10 【问题描述】:我的故事板中有一个UITableView
。它包含 5 个表格视图单元格。
当我单击第一个单元格时,它将转到第二个 UIView 并显示相应的图像。如何对 UITest 部分进行编码以测试单击第一个单元格时图像是否显示?
【问题讨论】:
【参考方案1】:XCode 7 有一个神奇的部分- UIRecording
先选中testCase,开始像Gif一样录制
然后你会看到,UIRecording为你创建UITest代码,在我的例子中,我得到了
let app = XCUIApplication()
app.tables/*@START_MENU_TOKEN@*/.staticTexts["Hello"]/*[[".cells.staticTexts[\"Hello\"]",".staticTexts[\"Hello\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.tap()
app.otherElements.containingType(.NavigationBar, identifier:"UIView").childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Image).element.tap()
那么,我只需要一点改变
let app = XCUIApplication()
app.tables.cells.elementBoundByIndex(0).tap()
let imageView = app.otherElements.containingType(.NavigationBar, identifier:"UIView").childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Image)
let count = imageView.images.count
XCTAssert(count != 0)
所以,主要有两步
让 UIRecording 为您创建代码 做一些小改动,比如添加Assert,按索引查询等等。然后运行
【讨论】:
以上是关于如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章
在 XCTest UI 测试中单击 NSToolbarItem