0

我需要访问协议,但出现以下错误:

'MyProtocol' cannot be constructed because it has no accessible initializers

这是我的实现:

public protocol MyProtocol{
    var someVar: Int {set get}
    var anotherVar: String {set get}
}


class ProtocolProjectTests: XCTestCase {
    var myProtocol: MyProtocol!

    override func setUp() {
        self.myProtocol = MyProtocol()
    }
}

在这条线上self.myProtocol = MyProtocol()是我得到错误的地方。

我对你们的问题是如何初始化 XCTest 类中的变量

我真的很感谢你的帮助。

4

1 回答 1

0

您需要使用此协议创建一些结构/类,例如:

class MyProtocolMock: MyProtocol{
    var someVar: Int
    var anotherVar: String

    init() {
        someVar = 0
        anotherVar = ""
    }
}

然后你可以使用它:

class ProtocolProjectTests: XCTestCase {
    var myProtocol: MyProtocol!

    override func setUp() {
        self.myProtocol = MyProtocolMock()
    }
}
于 2019-10-10T09:25:23.393 回答