在 Xcode 11 中没有调用 super.setUpWithError() 吗?

Sim*_*lyi 11 xcode unit-testing xctest xctestcase

我注意到当使用默认的 setUpWithError() 和 tearDownWithError() 方法创建新的 XCTestCase 类时,不再添加对 super.setUpWithError() 或 super.tearDownWithError() 的调用......如果我没记错的话,之前,当我创建一个新的单元测试用例类(XCTestCase 的子类)时,在默认模板类中,调用了 super.setUp() 和 super.tearDown() 方法。你知道为什么这些对 super 的调用被删除了吗?

例如,当创建 UIViewController 的子类时,默认类模板确实会调用 super.viewDidLoad()。为什么 XCTestCase 的默认模板不再调用 super

mat*_*att 1

当测试方法运行时, setUpWithError 都会 setUp被调用。因此,如果您覆盖setUpWithError不是 setUp,并且您的测试情况已经setUp在超类中具有实现,则将调用超类实现,而无需调用super

(如果您的测试情况在超类中没有实现,则首先setUp不需要调用。)super

因此,模板显示的图案是正确的。