为什么我的可选实例变量为零,而实际上我将它设置为非零?
代码:
class FooTests: XCTestCase {
var foo: Int?
func test_A_setFoo() {
XCTAssertNil(foo)
foo = 1
XCTAssertNotNil(foo)
}
func test_B_fooIsNotNil() {
XCTAssertNotNil(foo)
}
}test_A_setFoo()成功而test_B_fooIsNotNil()失败
发布于 2018-02-01 12:35:01
来自测试执行流程 (重点是后加的):
对于每个类,测试从运行类安装方法开始。对于每个测试方法,--类的一个新实例被分配给--并执行其实例设置方法。之后,它运行测试方法,然后运行实例删除方法。此序列重复用于类中的所有测试方法。在类中的最后一个测试方法teardown运行之后,Xcode执行类teardown方法并转移到下一个类。此序列重复执行,直到所有测试类中的所有测试方法都已运行为止。
在您的示例中,test_B_fooIsNotNil()是在一个新实例上执行的,对于这个实例,foo属性是nil。
可以将常见的设置代码放入setUp()类方法或setUp()实例方法中,请参阅了解测试方法的设置和测试
https://stackoverflow.com/questions/48562711
复制相似问题