XCTest: инициализация переменной протокола показывает, что ошибка не может быть создана, потому что у нее нет доступных инициализаторов - PullRequest
0 голосов
/ 10 октября 2019

Мне нужен доступ к протоколу, но я получаю следующую ошибку:

'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

Я очень ценю вашу помощь.

1 Ответ

0 голосов
/ 10 октября 2019

Вам нужно создать некоторую структуру / класс с этим протоколом, например:

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()
    }
}
...