XCTestCase可选实例变量

时间:2018-02-01 12:23:12

标签: swift xctest

为什么我的可选实例变量为nil,当我将其设置为非零?

代码:

class FooTests: XCTestCase {
    var foo: Int?

    func test_A_setFoo() {
        XCTAssertNil(foo)
        foo = 1
        XCTAssertNotNil(foo)
    }

    func test_B_fooIsNotNil() {
        XCTAssertNotNil(foo)
    }
}
{p> test_A_setFoo()成功而test_B_fooIsNotNil()失败

1 个答案:

答案 0 :(得分:4)

来自Flow of Test Execution (重点补充):

  

对于每个类,测试从运行类安装方法开始。对于每个测试方法,分配一个新的类实例并执行其实例设置方法。之后它运行测试方法,然后运行实例拆解方法。该序列重复了该类中的所有测试方法。在运行了类中的最后一个测试方法后,Xcode执行类拆解方法并继续下一个类。重复此序列,直到所有测试类中的所有测试方法都已运行。

在您的情况下,test_B_fooIsNotNil()在新实例上执行, foo属性为nil

可以将常用设置代码放入setUp()类方法中 或setUp()实例方法,请参阅 Understanding Setup and Teardown for Test Methods