【发布时间】:2018-09-06 04:49:59
【问题描述】:
我在场景中有 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
}
}
有人建议简单的解决方案吗?
【问题讨论】:
-
最好让测试彼此完全独立。这意味着一个测试的行为不应该依赖于另一个测试的结果,并且测试应该能够以任何顺序运行。
-
如果所有测试都依赖于相同的初始状态并且
testGetToken所做的唯一事情就是设置该状态,那么您可以在测试用例的setUp中执行此操作(等待异步结果在完成设置之前)。
标签: ios xctest xctestcase