我一直在为我的应用编写测试。但是,在运行我的测试时,我不断在我的函数
上收到错误Stall on main thread
private func waitForElementToAppear(testCase: XCTestCase,
element: XCUIElement,
file: String = #file,
line: UInt = #line) {
let existsPredicate = NSPredicate(format: "exists == true")
testCase.expectationForPredicate(existsPredicate,
evaluatedWithObject: element, handler: nil)
testCase.waitForExpectationsWithTimeout(5) { (error) -> Void in
if (error != nil) {
let message = "Failed to find \(element) after 5 seconds."
testCase.recordFailureWithDescription(message,
inFile: file, atLine: line, expected: true)
}
}
}
我在我的测试/代码中多次使用此函数。如何将其转换为辅助函数,因此我只需要编写一次此函数。提前感谢您的帮助:)
答案 0 :(得分:4)
使用扩展程序更加快捷:
extension XCTestCase {
// your function here
}
因此,您可以在所有测试类中使用它而无需额外的类
答案 1 :(得分:1)
您可以创建一个辅助类并使函数静态
class Helper {
static func waitForElementToAppear(testCase: XCTestCase,
element: XCUIElement,
file: String = #file,
line: UInt = #line) {
// do stuff
}
}
无论你需要使用哪个函数,都可以在helper上调用函数。