Проблема Uber / Mockolo: ProtocolAMock.generated: тип ‘ProtocolAMock’ не соответствует протоколу ‘ProtocolB’

#ios #swift #mocking #xctest #swift-protocols

#iOS #swift #издевательство #xctest #swift-протоколы

Вопрос:

Проблемы с Mockolo от Uber, сгенерированные тесты.

У меня есть протокол, соответствующий ProtocolB, протокол имеет аннотацию / оболочку @mockolo.

Вот мой код в original target :

 /// @mockable
protocol ProtocolA: ProtocolB {} 
 

Однако ProtocolA.generated.swift показывает следующую ошибку:

 // ProtocolAMock.generated: Type 'ProtocolAMock' does not conform to protocol 'ProtocolBmending'
 

Очевидно, что при повторном объявлении методов протокола в ProtocolB в сгенерированных файлах mocks файлов протокола ошибка исчезла.

Интересно, почему Mockolo не может распознать это, я также попытался добавить оболочку свойства @mockable для ProtocolB.

Я только начал использовать Uber / RIBs, любая помощь будет принята с благодарностью заранее 🙂

Спасибо Sai

Ссылка на ту же проблему, о которой сообщается на uber / mockolo GitHub.

Комментарии:

1. Это потому, что вы не внедрили методы ProtocolB в ProtocolA

Ответ №1:

Я обнаружил, что мой протокол B не был внутри источника для генерации mockolo.

Решение:

проверьте свой скрипт mockolo на этапах сборки

 ./mockolo -s ./Foo.swift -d ./OutputMocks.swift
 

убедитесь, что ваш protocol B находится внутри каталога -s (ofc, также как и @mockolo :))