为什么我的可选实例变量为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()
失败
答案 0 :(得分:4)
来自Flow of Test Execution (重点补充):
对于每个类,测试从运行类安装方法开始。对于每个测试方法,分配一个新的类实例并执行其实例设置方法。之后它运行测试方法,然后运行实例拆解方法。该序列重复了该类中的所有测试方法。在运行了类中的最后一个测试方法后,Xcode执行类拆解方法并继续下一个类。重复此序列,直到所有测试类中的所有测试方法都已运行。
在您的情况下,test_B_fooIsNotNil()
在新实例上执行,
foo
属性为nil
。
可以将常用设置代码放入setUp()
类方法中
或setUp()
实例方法,请参阅
Understanding Setup and Teardown for Test Methods