Модуль Objective-C, тестирующий закрытый интерфейс UIViewController

У меня есть UIViewController, и я пытался провести его модульное тестирование. У меня есть некоторые частные переменные и методы. Я хотел бы, чтобы они оставались частными. Вопрос в том, должен ли я на самом деле тестировать закрытый интерфейс? Имеет ли значение, как это происходит внутри, пока это делает то, что он должен с "внешней" точки зрения?

Трудно ли будет понять / поддерживать / изменить тесты, если я начну тестировать закрытый интерфейс? Будет ли это существенным ограничивающим фактором, когда дело доходит до легкости изменения внутренней реализации. Приватные методы / свойства не упоминаются в заголовочном файле, поэтому, если кто-то еще придет, человеку придется войти в закрытый интерфейс.

Кроме того, я должен проверить взаимодействие между UIViewController и UIView?

1 ответ

Решение

Не проверяйте частную реализацию, потому что это связывает вашу реализацию. Это приводит к хрупким испытаниям.

Вы можете почувствовать необходимость проверить что-то внутреннее. Это хороший признак того, что его нужно каким-то образом обнародовать. Это может указывать на то, что внутри есть другой класс, пытающийся выбраться. Вы можете извлечь его и проверить, а затем поверить, что он работает.

Другие вопросы по тегам