是否可以在运行测试中检查是否有任何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的问题,但是如果您需要使用几个xcasert方法,则会很麻烦。
另一种方法是覆盖continueAfterFailure
。如果没有失败,则不会请求属性。如果有,它会的。
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
}
}