XCTestCase - 如何断言包含字符串的 NSTextView?

XCTestCase - how to assert on a NSTextView containing String?

我有一个正在为其创建 UI 测试的 macOS 项目。

虽然通过文本值查找 staticTextbuttons 等相对容易。在 .textViews 上使用下标查找(似乎)不起作用。

我已经设法获得对 NSTextView 的引用,我想使用 .textViews.firstMatch 检查,但我不知道如何断言它的字符串值。

我正在寻找像这样工作的东西。

XCTAssertEqual(prefs.textViews.firstMatch.stringValue, "Enter text below")

只需 value 即可。
它在 XCUIElementAttributes 上可用,类型 Any? 因元素类型而异。

XCTAssertEqual(prefs.textViews.firstMatch.value as! String, 
               "Enter text below")

参考:

如果您打印出元素的 debugDescription,您应该看到哪个参数包含您要断言相等性的值。可能是 .value ,您可以出于您的目的简单地将其强制转换为 String 。字符串遵守 == 相等性检查,使得仅使用简单的 XCTAssert(originalTextViewValue == "String I want to value check against")

比较两个字符串变得微不足道