我正在尝试为我正在进行的项目编写测试,而我似乎无法弄清楚如何测试我的一些方法。因此,某些方法通过向数组添加或删除项来修改私有属性(Array)。我该如何测试这个案例?
谢谢!
答案 0 :(得分:1)
基本上你问的是如何测试私有财产。
注意:此方法仅适用于框架目标
如果您的班级继承自NSObject,您应该在此处查看:http://saulmora.com/2015/01/15/unit-testing-in-swift-without-access-levels.html
答案 1 :(得分:1)
如何在扩展中打开您的私有属性和方法,并仅将其用于测试。不测试时删除扩展名(注释掉)。
这里我在扩展名中的私有方法或属性名称前加上了'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.")
}