【发布时间】:2014-12-30 12:15:20
【问题描述】:
我正在尝试为我一直从事的项目编写测试,但我似乎不知道如何测试我的一些方法。因此,某些方法通过向数组添加或删除项目来修改私有属性(数组)。我该如何测试这些案例?
谢谢!
【问题讨论】:
我正在尝试为我一直从事的项目编写测试,但我似乎不知道如何测试我的一些方法。因此,某些方法通过向数组添加或删除项目来修改私有属性(数组)。我该如何测试这些案例?
谢谢!
【问题讨论】:
基本上你是在问如何测试私有财产。
注意:此方法仅适用于框架目标
如果你的类继承自 NSObject 你应该在这里检查:http://saulmora.com/2015/01/15/unit-testing-in-swift-without-access-levels.html
【讨论】:
如何在扩展中打开您的私有属性和方法并仅将其用于测试。不测试时删除扩展名(注释掉)。
这里我在扩展中的私有方法或属性名前面加了一个“T”。
例如:
class MyClass {
private var privateString: String?
private func privateSetName(name: String) {
privateString = name
}
extension MyClass { // for testing only
var TprivateString: String? {
get {
return self.privateString
}
}
func TprivateSetName(name: String) {
privateSetName(name)
}
}
然后在您的 XCTest 中您可以执行以下操作:
func testThatNameIsSet() {
let myClass = MyClass()
myClass.TprivateSetName("myName")
XCTAsserNotNil(myClass.TprivateString, "Name should be set.")
}
【讨论】: