【发布时间】:2019-10-21 09:15:03
【问题描述】:
我在 Objective-C 中有 SDK A 可以正常工作。我已经为它创建了扩展,它仍然适用于生产代码。
当我开始测试我的代码并直接使用 SDK 时,一切都很好。当我使用 stacktrace 调用我的扩展时,我的测试失败:
file:///%3Cunknown%3E: test failure: SomeTests.testAExtension() failed: failed: caught "NSInvalidArgumentException", “-[A myFun()]: unrecognized selector sent to instance 0x600001a8d3e0…
这是我使用的代码:
// sdk class in Objective-C
class A {
func sdkFun() {
// do something
}
}
extension A {
func myFun() {
sdkFun()
}
}
class SomeTests {
// O.K.
func testAFun() {
let a = A()
a.sdkFun()
}
// Fails with error
func testA() {
let a = A()
a.myFun()
}
}
我做错了什么? 我使用 Swift 4.2
【问题讨论】:
标签: ios objective-c swift unit-testing