Как превратить приватную функцию во вспомогательную функцию?
Я писал тесты для своего приложения. Однако при выполнении моих тестов я получаю ошибку 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)
}
}
}
Я использую эту функцию несколько раз в моих тестах / коде. Как я могу преобразовать это в вспомогательную функцию, поэтому мне нужно написать эту функцию только один раз. Спасибо за помощь заранее:)
2 ответа
Решение
Проще использовать расширение:
extension XCTestCase {
// your function here
}
Таким образом, вы можете использовать его во всех ваших тестовых классах без дополнительного класса
Вы можете создать вспомогательный класс и сделать функцию статической
class Helper {
static func waitForElementToAppear(testCase: XCTestCase,
element: XCUIElement,
file: String = #file,
line: UInt = #line) {
// do stuff
}
}
Таким образом, где бы вам ни понадобилось использовать функцию, вы можете вызывать эту функцию в помощнике.