我在场景中有 XCTestCase
在XCTestCase 主体中,有一组测试用例。 我只希望所有测试用例在第一个测试用例成功完成后开始的问题(在我的特殊目的中,第一个测试用例响应一个 token 供其他测试用例使用)。
我不想给其他测试用例添加参数token。
基本上,测试文件看起来像这样
class MyTestCase: XCTestCase {
var token: String!
override func setUp() {
super.setUp()
self.continueAfterFailure = false
}
func testGetToken() {
asyncGetToken { token in
self.token = token
// From now, the test1 and test2 should be started.
}
}
func test1() {
//using token to make request etc
}
func test2() {
//using token to make request etc
}
}
有人建议简单的解决方案吗?
最佳答案
如评论中所述,您应该将 token 检索移动到 setUp
方法中,这将允许在每次测试之前检索 token ,并使您的测试彼此独立。
override func setUp() {
super.setUp()
self.continueAfterFailure = false
let tokenExpectation = expectation(description: "get token")
asyncGetToken { token in
self.token = token
tokenExpectation.fulfill()
}
let result = XCTWaiter().wait(for: [tokenExpectation], timeout: 5)
XCTAssertEqual(result, .completed)
}
关于ios - XCTestCase 异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196716/