遇到 failureException 时如何停止在 XCTest 中等待
How to stop waiting in XCTest when failureExecption is met
在TestCase中,我调用了一个异步函数aTestFunction()。在回调中,根据结果,决定是否达到预期 expectation.fulfill()
或失败
failedExpectation.fulfill()
因为它是一个异步函数,所以我需要 wait(for: [expectation], timeout: 5.0)
作为结果。我的问题是“当测试失败 failedExpectation.fulfill()
时,我不需要为 'expectation' 等待 5 秒,我如何在 failedExpectation
完成时停止 'wait'”?
let expectation = XCTestExpectation(description: "succeed")
let failedExpectation = XCTestExpectation(description: "failed")
failedExpectation.isInverted = true
aTestFunction() { result in
if result == .success {
expectation.fulfill()
} else {
failedExpectation.fulfill()
}
}
wait(for: [expectation], timeout: 5.0)
您不必创建两个 XCTestExpectation
:
let expectation = XCTestExpectation(description: "Test function completion not called")
aTestFunction() { result in
expectation.fulfill()
if result == .success {
/// write successful test case here
} else {
XCTFail("Test function fails")
}
}
wait(for: [expectation], timeout: 5.0)
如果 aTestFunction
没有在 5 内完成,那么测试用例将失败。
如果它在 5 内完成,那么预期已经实现,现在您必须测试是否存在预期结果。
在TestCase中,我调用了一个异步函数aTestFunction()。在回调中,根据结果,决定是否达到预期 expectation.fulfill()
或失败
failedExpectation.fulfill()
因为它是一个异步函数,所以我需要 wait(for: [expectation], timeout: 5.0)
作为结果。我的问题是“当测试失败 failedExpectation.fulfill()
时,我不需要为 'expectation' 等待 5 秒,我如何在 failedExpectation
完成时停止 'wait'”?
let expectation = XCTestExpectation(description: "succeed")
let failedExpectation = XCTestExpectation(description: "failed")
failedExpectation.isInverted = true
aTestFunction() { result in
if result == .success {
expectation.fulfill()
} else {
failedExpectation.fulfill()
}
}
wait(for: [expectation], timeout: 5.0)
您不必创建两个 XCTestExpectation
:
let expectation = XCTestExpectation(description: "Test function completion not called")
aTestFunction() { result in
expectation.fulfill()
if result == .success {
/// write successful test case here
} else {
XCTFail("Test function fails")
}
}
wait(for: [expectation], timeout: 5.0)
如果 aTestFunction
没有在 5 内完成,那么测试用例将失败。
如果它在 5 内完成,那么预期已经实现,现在您必须测试是否存在预期结果。