XCTest:检查是否未调用回调

XCTest: Check That a Callback is Not Called

我知道如何在XCT等待回调。但是,逆向测试呢?

下面是我测试的一个例子:

manager.state = .initialized
let exp = expectation(description: "expectation")
manager.login { state, error in
    exp.fulfill()
    XCTAssert(state == .initialized)
    XCTAssertNil(error)
}
waitForExpectations(timeout: 1)

在我编写的下一个测试中,我想要一个测试以确保当我的 manager 对象的状态是特定值时不会调用回调。

这可以通过在 XCTestExpectation 对象上设置 isInverted = true 来完成,如下所示:

manager.state = .initialized
let exp = expectation(description: "inverted expectation")
exp.isInverted = true
manager.login { state, error in
    exp.fulfill()
}
waitForExpectations(timeout: 1)