【发布时间】:2019-05-06 12:00:35
【问题描述】:
我想测试这样一个类:
class Foo {
var number: Int = 0
}
在iOS单元测试中,通常测试用例应该是:
class FooTests: XCTestCase {
var foo: Foo!
override func setUp() {
foo = Foo()
}
override func tearDown() {
foo = nil
}
func testAbc() {
print(foo.number)
foo.number = 10
}
func testBCD() {
print(foo.number)
}
}
然后呢
class FooTests: XCTestCase {
let foo = Foo()
func testAbc() {
print(foo.number)
foo.number = 10
}
func testBCD() {
print(foo.number)
}
}
我看到输出都是 0,这意味着当每个开始测试用例时,foo 似乎又被初始化了。就像使用setUp 和tearDown。
两者都一样吗?
编辑:
感谢@Anton 的回答,我什至在没有setUp 但使用tearDown 的情况下进行了测试,然后与使用setUp 和tearDown 相同。
var foo: Foo! = Foo()
override func tearDown() {
foo = nil
}
【问题讨论】:
-
有
class(static) 和instancesetUp和tearDown方法。static被调用一次,instance在 each 测试之前和之后被调用。参考:developer.apple.com/documentation/xctest/xctestcase/…
标签: ios swift unit-testing xctestcase