0

我是 XCUITest 的新手。我想就如何设计“页面”(实际上更像屏幕)对象 XCUITest 获得一些建议。

是否有任何提供示例供参考的开源项目?

我正在考虑创建一个屏幕文件夹以将所有屏幕对象放在那里以保存每个屏幕的方法和定位器。创建一个测试文件夹来放置实际的测试用例。并且还创建一个 lib 文件夹以将常用方法放在那里。

我想知道两件事:1. XCUITest 如何引用不同文件夹中的文件,一个测试文件如何从 2 个不同的屏幕文件中导入方法?2.我也在考虑创建一个数据文件(像.json文件一样)。我应该将其设置为 .swift 文件吗?以及如何让我的测试调用它?

非常感谢!

4

1 回答 1

1
  1. 您无需从位于同一目标的不同文件夹中导入文件。它们可以直接使用而无需导入。
  2. 请参阅使用 Swift 读取 JSON 文件以读取 json 文件。

用于页面对象设计

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.")
    }
}
于 2019-05-23T06:53:50.153 回答