通过在UITextField中循环遍历值模式来测试应用程序

时间:2016-12-26 10:00:37

标签: objective-c xcode xcode-ui-testing

我想通过在 UITextField 中输入1到10000之间的值并按“Go” UIButton 来测试我的应用程序即可。

并了解执行segue的条件。

如何定义自动化测试的测试标准,并在UITextField中输入值1 - 10000?

enter image description here

与我的问题完全匹配的另一种情况:

在测试计算器应用程序时,我需要检查所有可能的操作和数字。我们可以自动化测试随机点击计算器并检查输出吗?

1 个答案:

答案 0 :(得分:1)

您可以使用循环来尝试1到10000之间的每个值。对于每个值,在文本字段中键入它,按下按钮,看看会发生什么。我不确定你期待发生什么,所以我刚刚编写了代码来检查标签是否出现 - 你应该将其更改为你认为可以断言正确结果发生的任何内容。

XCUIApplication *app = [[XCUIApplication init] alloc];
XCUIElement *textField = [[app.textFields matchingIdentifier: "myTextField"] elementBoundByIndex: 0];
XCUIElement *goButton = [[app.buttons matchingIdentifier: "goButton"] elementBoundByIndex: 0];

for (NSNumber i = 1; i <= 10000; i++) {
    NSString *n = [NSString stringWithFormat:@"%d", i];
    [textField tap];
    [textField typeText: n];
    [goButton tap];

    // Define what it is you expect to happen
    BOOL expectedOutcome = [[app.staticTexts matchingIdentifier: "myLabel"] elementBoundByIndex: 0].exists;
    XCTAssert(expectedOutcome, [NSString stringWithFormat:@"Unexpected result for %d", i])
}