简单的问题。我得到了对下一个视图控制器执行segue的按钮。 我想写UI XCTest告诉我它是否打开了我想要的视图控制器。
答案 0 :(得分:1)
Matt Green的评论给了我一个好主意。我们可以定义一个未使用的标签/按钮,最好是在基本视图控制器内部,并为其分配一个可访问性标签,以执行查询以找出要显示的视图控制器。
public class BaseViewController: UIViewController {
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
public override func viewDidLoad() {
super.viewDidLoad()
if let identifier = self.theClassName.split(separator: ".").last {
button.accessibilityIdentifier = String(identifier)
view.addSubview(button)
}
}
}
public class DatePickerViewController: BaseViewController {
...
}
func testExample() {
let app = XCUIApplication()
app.launch()
app.navigationBars.buttons["DateSelector"].tap()
XCTAssertTrue(app.buttons["DatePickerViewController"].exists)
}
请注意,为了使此方法有效,您必须添加用于标识视图控制器的视图(在这种情况下为按钮)应作为子视图添加,并且必须具有非零帧。