我是XCUITest的新手。我想对如何设计“页面”(实际上更像屏幕)对象XCUITest提出一些建议。
是否有任何开源项目可以提供示例参考?
我正在考虑创建一个屏幕文件夹,以将所有屏幕对象放在那里,以容纳每个屏幕的方法和定位器。创建一个测试文件夹以放置实际的测试用例。并创建一个lib文件夹以将常用方法放在此处。
我在想两件事:1. XCUITest如何引用不同文件夹中的文件,如何从两个不同的屏幕文件导入一个测试文件的方法? 2.我也正在考虑创建一个数据文件(类似于.json文件)。我应该将其设置为.swift文件吗?以及如何进行测试?
非常感谢!
答案 0 :(得分:1)
用于页面对象设计
AppNameUITests / Screens / Screen1.swift
class Screen1 {
var app: XCUIApplication
init(app: XCUIApplication) {
self.app = app
}
var element1: XCUIElement {
return app.buttons.firstMatch
}
var element2: [XCUIElement] {
return app.textFields.allElementsBoundByIndex
}
func method1() -> Int {
element1.click()
return element2.count
}
}
AppNameUITests / Tests / TestSuite1.swift
class TestSuite1: XCTestCase {
override func setUp() {
// launch application and pre-conditions for the test case
}
override func tearDown() {
// clean up steps and terminate the application
}
func testMethod1() {
let app = XCUIApplication()
let screen1Obj = Screen1(app: app)
XCTAssertTrue(screen1Obj.method1() == 5, "Test failed.")
}
}