如何 UI 测试属性字符串是否被划掉
How to UI test if an attributed string is crossed out or not
我正在用这个方法划掉一个字符串
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"]
您可以使用 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!
}
您可能会使用像
这样的屏幕快照比较工具
https://github.com/uber/ios-snapshot-test-case
安装非常简单。虽然我提到的工具旨在用于单元测试,但它也可以在 UI 测试目标中完美运行。
唯一的答案是,我不应该 UI 测试内容的外观,但我应该测试特定内容是否可用。
由于无法在 UI 测试中获取对象属性,例如颜色、字体大小...
我正在用这个方法划掉一个字符串
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"]
您可以使用 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!
}
您可能会使用像
这样的屏幕快照比较工具https://github.com/uber/ios-snapshot-test-case
安装非常简单。虽然我提到的工具旨在用于单元测试,但它也可以在 UI 测试目标中完美运行。
唯一的答案是,我不应该 UI 测试内容的外观,但我应该测试特定内容是否可用。 由于无法在 UI 测试中获取对象属性,例如颜色、字体大小...