如何在 Xcode 7 中的 UITest 期间获取文本字段的值?

How to get value of a textfield during UITest in Xcode 7?

我正在尝试在 Mac 上测试一个简单的摄氏华氏温度转换器。我正在 运行ning macOS Sierra 和 Xcode 7.2.1.

当我运行下面测试

- (void)testExample2 {
    XCUIApplication *app = [[XCUIApplication alloc] init];
    XCUIElement *cfWindow = app.windows[@"Celsius Fahrenheit Converter"];

    XCUIElement *textField1 = [[cfWindow childrenMatchingType:XCUIElementTypeTextField]elementBoundByIndex:0];

    XCUIElement *textField2 = app.textFields[@"fahrField"];

    [textField1 typeText:@"21\r"];

    NSString *str = (NSString *) textField2.value;

    XCTAssertEqual(str, @"69.8");
}

我基本上是在摄氏度字段中输入值 21,并希望在华氏度字段中得到值 69.8。但是我收到错误消息

测试失败:-[CFConverterUITests testExample2] 失败:((str) 等于 (@"69.8")) 失败:("<4536392e 38000000>") 不等于 ("< 30c15800 01000000>")

有谁知道出了什么问题以及该怎么办?

XCTAssertEqual 不适用于对象。你的断言应该是 XCTAssert([str isEqualToString:@"69.8"]);