MonkeyTalk:验证自定义UITableViewCell标签文本而不选择单元格

时间:2013-04-30 15:57:46

标签: iphone uitableview automated-tests custom-view monkeytalk

我有一个iPhone应用程序,它有一个搜索框和带有自定义UITableViewCells的UITableView。此表在用户输入搜索词并点击搜索后加载搜索结果。 我需要用MonkeyTalk测试搜索结果。 (使用MonkeyTalk脚本或JavaScript版本)。我想检索/验证第一个CustomUITableViewCell的第二个标签包含搜索文本而不选择单元格。

到目前为止,我可以使用

获取每个表格部分的项目数量
var count = app.table().get("count", "size(sectionNo)"); //java script version

我可以使用

成功检索默认UITableViewCells的标题或详细文本
var data = app.table().get("data","item(CellNo)"); //java script version

Table * Verify "searchTerm" item(CellNo)   #monkey script version

我想知道我如何使用自定义UITableViewCell做同样的事情?

MonkeyTalk表格属性reference

1 个答案:

答案 0 :(得分:1)

我找到了办法。

首先打开xcode项目源代码,在UITableviewDelegate方法“cellForRowAtIndexPath”(我们配置每个单元格)中为要通过自动化测试验证/访问的Label配置属性“accessibilityLabel”。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
........
........
cell.searchItemTitle.text = item.title;
cell.searchItemDescription.text = item.description;
cell.searchItemTitle.accessibilityLabel = @"cellTitleLabel";
........
........
return cell;
}

使用测试目标进行清理和构建。 在monkeytalk脚本中,您可以使用accessibilityLabel名称

访问该属性
Label "cellTitleLabel" Verify "apple" ".text" #monkeytalk script

app.label("cellTitleLabel").verify("apple", ".text"); //java script version

注意:无需考虑表格或部分信息。它将使用monkeyId“cellTitleLabel”标识一个Label,如果你想访问同一个表的第二个单元格的titleLabel,你可以使用monkeyId“cellTitleLabel(2)”,对于第三个单元格monkeyId“cellTitleLabel(3)”就像那样..

如果你们有更好的解决方案,请在此处添加 谢谢.. Chathura