Swift: как проверить пользовательский интерфейс, вычеркнута ли приписанная строка - PullRequest
0 голосов
/ 20 октября 2019

Я использую этот метод, чтобы вычеркнуть строку

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "Your Text")
    attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))

yourLabel.attributedText = attributeString

Теперь я создаю UI-тест для проверки метки. Я хочу проверить, зачеркнута ли метка (зачеркнутый) или нет.

Как я могу это сделать?

Это тестовый код пользовательского интерфейса

let mastertableviewTable = app.tables["masterTableview"]
let staticText = mastertableviewTable.staticTexts["task two"]

Ответы [ 3 ]

0 голосов
/ 21 октября 2019

Вы, вероятно, будете использовать инструмент сравнения снимков экрана, например

https://github.com/uber/ios-snapshot-test-case

Это довольно просто установить. Хотя упомянутый мной инструмент предназначен для использования в модульном тестировании, он также отлично работает в целях тестирования пользовательского интерфейса.

0 голосов
/ 30 октября 2019

Единственный ответ на этот вопрос - я не должен тестировать пользовательский интерфейс, как выглядит контент, но я должен проверить, доступен ли конкретный контент. поскольку в тестировании пользовательского интерфейса нет способа получить атрибуты объектов, такие как цвет, размер шрифта ...

0 голосов
/ 20 октября 2019

Вы можете использовать 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!
}
...