问题描述
我对XCode UI测试还很陌生,我试图运行一个测试,在该测试中我填写两个文本标签,然后按一个按钮。按下按钮后,应用程序应进行URL调用并重定向到另一个视图控制器。我要检查在此操作结束时是否显示第二个视图控制器。
要对此进行测试,我编写了以下测试:
let app = XCUIApplication()
app.launch()
let ownerTextField = app.textFields["ownerTextField"]
ownerTextField.tap()
ownerTextField.typeText("UserA")
let repositoryTextField = app.textFields["repositoryTextField"]
repositoryTextField.tap()
repositoryTextField.typeText("AppB")
app.buttons["SearchButton"].tap()
XCTAssertTrue(app.isdisplayingResults)
isdisplayingResults
在哪里
extension XCUIApplication {
var isdisplayingResults: Bool {
return otherElements["resultView"].exists
}
}
我已经在其快捷文件类中设置了View控制器的标识符:
override func viewDidLoad() {
super.viewDidLoad()
view.accessibilityIdentifier = "resultView"
...
尽管如此,测试失败。我如何获得成功?
解决方法
非常简单。 如果单击URL后显示Viewcontroller,则表示屏幕上不存在您以前的VC按钮。 因此,只需检查先前的VC按钮是否存在。
If app.buttons["SearchButton"].esists()
{ //write if code
} else {
// Write else code
}