我有一个协议(protocol)
protocol SomeProtocol { func method() }
及其实现
extension SomeProtocol {func method(){--implementation--}}
在构建目标中,我有一个类确认此协议(protocol)
class SomeClass: SomeProtocol { func doSomething() { method() } }
我想要的是我想要在我的测试目标中的 XCTest 文件中对协议(protocol)方法进行不同的实现。为此,我所做的是扩展 SomeClass 并在那里编写我的实现。
extension SomeClass {func method(){--other implementation--} }
但在执行测试用例时它从未被调用。始终会调用构建目标中的方法(默认实现)。
请告诉我应该做什么。
最佳答案
找到了。我使用的是 @testable import MYProject。
如果您使用此方法,则上述方法将不起作用。如果您要添加所有项目文件而不是使用导入,则上述方法有效。
关于swift - 即使在 XCTest 文件中的类扩展中实现了方法之后,协议(protocol)的默认实现也始终会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49521742/