Вопрос
Я пытаюсь провести модульное тестирование своей реализации метода протокола, который принимает неизменный объект, которого нет в моем проекте, в качестве параметра. Этот объект не имеет инициализаторов, которые устанавливают его свойства. Каков наилучший способ модульного тестирования в этом сценарии?
Что я пробовал
Я пробовал создавать подклассы и приводить свойства к readwrite, но у вас есть доступ только к супер -class 'ivars, если они явно помечены как @protected. Так как класс не входит в мой проект, я не могу переназначить новую область видимости для ivar.
Я также не могу высмеивать установщик, который не существует, и ivars не доступны для прямой записи через фиктивные объекты.
В конце концов, я решил добавить дополнительный метод, который вызовет рассматриваемый метод, передавая только объекты, свойства которых я могу установить, и я рассмотрел этот дополнительный метод в модульных тестах.
Есть ли лучший способ для модульного тестирования в этом сценарии?
Особенности моего сценария
Я пытаюсь провести модульное тестирование моей реализации userContentController : didReceiveScriptMessage: из протокола WKScriptMessageHandler WebKit и не может найти способ передать экземпляр WKScriptMessage или WKUserContentController с любым установленным свойством.
Для модульного тестирования я создал новый метод, который принимает параметр типа 'id' и вызвал его из userContentController: didReceiveScriptMessage :, передавая WKScriptMessage body prope RTY.