ios - 如何进行 UI 测试 UITextField 或 UITextView 的 autocapitalizationType 属性是否设置正确?

标签 ios uitextview xcode-ui-testing

假设我有一个 UITextView,我在其中设置了这些属性:

    textView.accessibilityIdentifier = "autocapitalized"
    textView.autocapitalizationType = UITextAutocapitalizationType.Sentences

现在,如果 autocapitalizationType 设置正确,我想要进行 UI 测试(使用新的 XCode 7 UI 测试框架)。
为了模拟用户在 UITextView 上书写,我编写了一个如下测试:

    let app = XCUIApplication()
    let textView = app.textViews["autocapitalized"]

    textView.tap()
    textView.typeText("a") // lowercase 'cause I thought it'd be automatically uppercased but I was wrong

    XCTAssert(textView.value as! String == "A") // fails

测试将失败,所以我的问题是:有没有办法在软件键盘上模拟简单的按键?
我的意思是,如果我手动运行测试,我将焦点放在 textView 上,然后点击键盘上的“A”,默认情况下它会自动大写(因为 autocapitalizationType 属性):如何自动将相同的测试加倍新的 UI 测试框架?

最佳答案

点击 A 键,而不是在文本字段中输入文本。

let app = XCUIApplication()
let textView = app.textViews["autocapitalized"]

textView.tap()
app.keys["A"].tap()

如果键盘上未显示 A 键,则最后一行将失败。如果文本字段的 autocapitalizationType 设置不正确,则将出现一个键。

关于ios - 如何进行 UI 测试 UITextField 或 UITextView 的 autocapitalizationType 属性是否设置正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567878/

相关文章:

ios - 用户界面测试 : Check if text with prefix exists

ios - 为什么对象有一个指针而不是一个整数?

ios - 如何在成功的 FB ShareDialog 帖子后获取帖子 ID

ios - 为什么DispatchQueue不遵守QoS?

ios - 如何在打字时进行实时 UITextField 计数(Swift)?

新行中 ScrollView 插入符号错位的 iOS TextView

Xcode UI 测试 - UI 测试失败 - 当点击搜索字段 "Cancel' 按钮时无法滚动到可见(通过 AX 操作)

objective-c - 滚动图像的 View

ios - 如何在 UITextView 中设置文本边距?

使用 Realm 进行 Swift XCTest UI 测试