Проверьте сигнатуры метода, прежде чем приступить - PullRequest
0 голосов
/ 12 декабря 2018

Я использовал метод swizzling для замены реализаций для модульного тестирования.Однако меня беспокоит, что если сигнатуры методов производственного кода изменятся из-за изменений параметров, модульные тесты будут скомпилированы без ошибок, и поведение во время выполнения может быть нестабильным.

Итак, есть ли время компиляции илидаже способ выполнения, чтобы подтвердить, что подписи двух методов Objective C одинаковы?

1 Ответ

0 голосов
/ 12 декабря 2018

Пока вы настроили свои модульные тесты так, что код написан так, как будто вы вызываете экземпляр реального класса, используя его реальный интерфейс, изменение сигнатуры должно быть зафиксировано во время компиляции.

Вы могли бы пройтись по среде выполнения и получить сигнатуры метода, а затем сравнить элементы этих сигнатур на совместимость, но это не отлавливает все изменения (например, все параметры, которые принимают объекты, кодируются как '@«).

...