如何 UI 测试属性字符串是不是被划掉
Posted
技术标签:
【中文标题】如何 UI 测试属性字符串是不是被划掉【英文标题】:How to UI test if an attributed string is crossed out or not如何 UI 测试属性字符串是否被划掉 【发布时间】:2019-10-20 06:41:00 【问题描述】:我正在用这个方法划掉一个字符串
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your Text")
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))
yourLabel.attributedText = attributeString
现在,我正在创建一个 UI 测试来测试标签。我想检查标签是否被划掉(删除线)。
我该怎么做?
这是 UI 测试代码
let mastertableviewTable = app.tables["masterTableview"]
let staticText = mastertableviewTable.staticTexts["task two"]
【问题讨论】:
使用单元测试,而不是 UI 测试。 【参考方案1】:对此的唯一答案是,我不应该通过 UI 测试内容的外观,但我应该测试特定内容是否可用。 由于在 UI 测试中我们无法获取对象属性,例如颜色、字体大小...
【讨论】:
【参考方案2】:你可能会使用屏幕快照比较工具,如
https://github.com/uber/ios-snapshot-test-case
安装非常简单。虽然我提到的工具设计用于单元测试,但它也可以在 UI 测试目标中完美运行。
【讨论】:
【参考方案3】:您可以使用attribute(attrName:location:range:)
。
var range: NSRange
var attributedText: NSAttributedString
...
if attributedText.attribute(NSStrikethroughStyleAttributeName, at: attributedText.length - 1, effectiveRange: &range) != nil
// OK!
else
// Not OK!
【讨论】:
在 UI 测试中?怎么样?以上是关于如何 UI 测试属性字符串是不是被划掉的主要内容,如果未能解决你的问题,请参考以下文章
从123……181920中划掉15个数字剩下的数最小是多少?
在 Chrome 开发工具中,为啥这个 css background-color 淡出但没有被划掉?