我想知道在进行XCtesting时是否有一种使用unit的方法,以便指定在各个测试用例之间不被分解的常量变量?我意识到一般而言,单元测试的最佳实践是保持测试尽可能独立,但是在我目前的情况下,如果我能够做到这一点并在测试用例之间保持恒定的变量,它将使测试执行得更快。
目前,我调用的任何类型的init函数
override init() {
super.init()
}
Run Code Online (Sandbox Code Playgroud)
给我一个EXC_BAD_INSTRUCTION错误。如果我不能在XCTestCase中使用init(),是否可以使用其他解决方法?
尝试将变量移出XCTestCase类。
import XCTest
var counter = 0 // Note this is outside the class declaration
class MyTests: XCTestCase {
override func setUp() {
super.setUp()
counter++
print("Counter: \(counter)")
}
func testOne() {
...
}
func testTwo() {
...
}
func testThree() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
这给出了这样的输出。
...
Counter: 1
...
Counter: 2
...
Counter: 3
...
Run Code Online (Sandbox Code Playgroud)
您可以使用类 setUp和tearDown方法来达到此目的。类setUp方法在第一个测试方法开始之前调用一次,类tearDown方法在所有测试方法完成后调用一次。
我的理解是,这些正是为了处理您所描述的测试范围状态。Apple 有一些很好的文档。
这种方法的优点是状态至少保留在测试类的本地,即使不是单独的测试。
| 归档时间: |
|
| 查看次数: |
2793 次 |
| 最近记录: |