在我的自定义类 WLNetworkClient
中,我必须实现这样的方法:
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
我不需要使用它,但我想测试它以实现 100% 的代码覆盖率。你知道如何实现吗?
我尝试了以下方法但没有成功:
let nc = WLNetworkClient(coder: NSCoder())
XCTAssertNotNil(nc)
最佳答案
生产代码:
required init?(coder: NSCoder) {
return nil
}
测试:
func testInitWithCoder() {
let archiverData = NSMutableData()
let archiver = NSKeyedArchiver(forWritingWithMutableData: archiverData)
let someView = SomeView(coder: archiver)
XCTAssertNil(someView)
}
由于required initializer返回nil
并且没有使用coder,所以上面的代码可以简化为:
func testInitWithCoder() {
let someView = SomeView(coder: NSCoder())
XCTAssertNil(someView)
}
关于swift - 如何测试所需的初始化(编码器 :)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500193/