目前我正试图对一个接受一个数据对象参数的函数进行单元测试:
addColor(_ coreDataManagerContext: NSManagedObjectContext, _ object: Color?) {//code here}
问题在于它需要一个对象:Color?
需要被模拟。
以下是原始Color
模型的样子,它在Swift 4中进行了解析:
class Color: Codable {
var id: String
var name: String
enum CodingKeys: String, CodingKey {
case id = "Id"
case name = "Name"
}
}
我想过做这样的事情:
class mockColorObject: Color {
self.name = "red"//error here
}
但得到错误:"预期声明"
答案 0 :(得分:0)
您可能希望在初始值设定项中设置此变量:
class mockColorObject: Color {
required init(from decoder: Decoder) throws {
try super.init(from: decoder)
self.name = "red"
}
}
但是,如果您可以更改正在测试的代码,那么定义ColorType
和Color
都符合的mockColorObject
协议可能是更好的策略,因为为此目的进行了子类化嘲笑会导致问题。