Swift 使用协议扩展测试协议

Swift 使用协议扩展测试协议,swift,protocols,xctest,Swift,Protocols,Xctest,我有一个协议和上述协议的多个实现。似乎创建一个带有协议扩展的测试协议,然后测试所有实现是一个好模式。比如: protocol CommonTests { var testObject: SomeProtocol! func testA() func testB() } extension CommonTests { func testA() { ... } func testB() { ... } } class SomeClassATests: X

我有一个协议和上述协议的多个实现。似乎创建一个带有协议扩展的测试协议,然后测试所有实现是一个好模式。比如:

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似乎不接受这一点。代码似乎没有运行,测试也没有显示在测试导航器中

有没有人有一个好方法可以在不重写大量代码的情况下测试协议的多个实现


Edit我将测试函数显式添加到
CommonTests
协议定义中,但没有效果。

您是否尝试在协议内部实现?没有任何扩展?有关更多信息,请阅读“Swift 2.0中的混合和特征”协议不能有实现,只能有函数/属性的定义。请阅读有关Swift 2.0的更多信息。它可以有Swift 2中的实现协议,也可以有协议扩展提供的实现,如上所示。问题是Xcode和XCTest无法正确识别它们。您是否知道是否可以将
setup
放入协议中?我试过了,但我的测试没有运行它。。。