iOS自动化测试 - 使用 setUp() 和 tearDown() 在 Swift 单元测试中设置和清理环境

76 阅读2分钟

简述

在 Swift 的单元测试中,setUp()tearDown() 被用来进行设置和清理工作。通过这两个方法,在测试之前可以设置测试环境,在测试完成后可以清理环境,以确保每个测试都在一个独立且干净的环境中运行,避免测试之间相互影响。

说明

在进行 testExampletestExample2 测试时,尽管两次调用 sample.changeState() 方法都应该将 state 属性增加 1,但由于每次测试方法运行都会重新实例化 Sample 类,因此测试方法之间的状态不会共享。

每次测试方法运行时,都会创建一个新的 Sample 实例,且 state 属性的初始值始终为 0。因此,无论在测试方法中调用 changeState() 方法多少次,每次的 state 属性都会从 0 开始增加,并在测试方法结束后被销毁。这解释了为何两次测试中 state 属性最终都是 1。

Screenshot 2024-05-05 at 12.55.52.png

用法

setUpWithError() 方法

setUpWithError() 方法中,你应该准备测试所需的初始状态和资源。通常情况下,你会在这里执行一些初始化工作,比如创建对象实例、打开文件、建立数据库连接等,以确保测试方法在运行时处于正确的环境中。

override func setUpWithError() throws {
    // 这里不需要执行任何初始化操作
    // 因为我们的测试用例中没有需要初始化的资源或状态
}

tearDownWithError() 方法

tearDownWithError() 方法中,你应该执行一些清理操作,以确保测试后的状态是干净的,不会影响其他测试。通常情况下,你会在这里释放资源,关闭文件、数据库连接,或执行其他清理工作。

override func tearDownWithError() throws {
    // 这里不需要执行任何清理操作
    // 因为我们的测试用例中没有需要清理的资源或状态
}

通过正确使用 setUpWithError()tearDownWithError() 方法,你可以确保每个测试方法都在一个独立且干净的环境中运行,提高了测试的可靠性和稳定性。