Xcode 10 和 super.tearDown
Xcode 10 and super.tearDown
自 Xcode 10.1(也许 10)以来,当我创建单元测试文件时,我没有调用 super.tearDown() 和 super.setUp() 。
我在发行说明中没有看到这样的变化。
所以我的问题还是应该写super.tearDown()和super.setUp()?
class SomethingTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
对于 XCTestCase 的直接子类,不调用 super.setUp()
的行为不会有任何变化。那是因为 setUp
和 tearDown
是在顶层具有空实现的模板方法。
虽然行为没有变化,但省略对 super
的调用意味着如果您创建了一个具有多个级别的测试层次结构,则必须将它们添加回去。
你什么时候能拥有不止一个级别?有两种情况:
- 当您想要为不同的场景重复使用相同的测试时。
- 当您对 XCTestCase 进行子类化以创建自定义助手时。
这些并不是每天都会发生。但它们确实发生了。决定 "I need it here, but I don't need it there" 是危险的。所以我会一直打电话给 super
。
自 Xcode 10.1(也许 10)以来,当我创建单元测试文件时,我没有调用 super.tearDown() 和 super.setUp() 。
我在发行说明中没有看到这样的变化。
所以我的问题还是应该写super.tearDown()和super.setUp()?
class SomethingTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
对于 XCTestCase 的直接子类,不调用 super.setUp()
的行为不会有任何变化。那是因为 setUp
和 tearDown
是在顶层具有空实现的模板方法。
虽然行为没有变化,但省略对 super
的调用意味着如果您创建了一个具有多个级别的测试层次结构,则必须将它们添加回去。
你什么时候能拥有不止一个级别?有两种情况:
- 当您想要为不同的场景重复使用相同的测试时。
- 当您对 XCTestCase 进行子类化以创建自定义助手时。
这些并不是每天都会发生。但它们确实发生了。决定 "I need it here, but I don't need it there" 是危险的。所以我会一直打电话给 super
。