未能在任何地方找到这个明显的我发生在这篇博客文章的Swift语言类似的情况。 Xcode UITests: How to check if a UISwitch is on
有了这些信息,我测试和验证了两种方法来解决我的问题。
1)断言如果状态是开启还是关闭
XCUIElement *mySwitch = app.switches[@"My Switch Storyboard Accessibility Label"];
// cast .value to (NSString *) and test for @"0" if off state
XCTAssertEqualObjects((NSString *)mySwitch.value, @"0", @"Switch should be off by default."); // use @"1" to test for on state
2)为了测试开关的状态是开还是关,然后切换其状态
XCUIElement *mySwitch = app.switches[@"My Switch Storyboard Accessibility Label"];
// cast .value to (NSString *) and test for @"0" if off state
if (![(NSString *)mySwitch.value isEqualToString:@"0"])
[mySwitch tap]; // tap if off if it is on
使用的方法( 2),我可以在测试用例运行之间为所有UISwitch强制设置默认状态,并避免状态恢复干扰。