是否可以在正在运行的测试中检查其任何 XCTAssert
是否失败?我有一个连续几个断言的测试,我想随后添加一些代码以在其中任何一个失败时执行特定操作:
class testClass : XCTestCase
{
func testSomething()
{
let someComputedValue1 = func1()
let someComputedValue2 = func2()
XCTAssertLessThanOrEqual(someComputedValue1, 0.5)
XCTAssertLessThanOrEqual(someComputedValue2, 0.2)
if anyOfTheAboveAssertionsFailed {
performAction()
}
}
}
我想要提示的部分是 anyOfTheAboveAssertionsFailed
条件,而不重复与硬编码值的比较。
最佳答案
虽然使用自己的断言方法可以解决 PO 的问题,但如果需要使用多个 XCAssert 方法,那就很麻烦了。
另一种方法是重写 continueAfterFailure
。如果没有失败,则不会请求该属性(property)。如果有的话,就会的。
class MyTest: XCTest {
private var hasFailed = false
override var continueAfterFailure: Bool {
get {
hasFailed = true
return super.continueAfterFailure
}
set {
super.continueAfterFailure = newValue
}
}
override func tearDown() {
if hasFailed { performAction() }
hasFailed = false
}
}
关于swift - 如何检查 XCTestCase 测试是否失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659366/