我有一个协议和所述协议的多个实现。看起来创建一个带有协议扩展的测试协议然后测试所有实现是一个很好的模式。类似的东西:
protocol CommonTests {
var testObject: SomeProtocol!
func testA()
func testB()
}
extension CommonTests {
func testA() { ... }
func testB() { ... }
}
class SomeClassATests: XCTestCase, CommonTests {
var testObject: SomeProtocol!
override func setUp() {
super.setUp()
testObject = SomeClassA()
}
}
class SomeClassBTests: XCTestCase, CommonTests {
var testObject: SomeProtocol!
override func setUp() {
super.setUp()
testObject = SomeClassB()
}
}
但Xcode 7.1似乎不接受这一点。代码似乎没有运行,测试也没有出现在测试导航器中。
有没有人有一个很好的方法来测试协议的多个实现而无需重写大量代码?
编辑我明确地将测试函数添加到CommonTests
协议定义中,但无济于事。