2013-09-13 2 views
2

Использование Test-driven development process с проектом iOS, Где я должен разместить тестовую логику?Где я должен размещать тесты единиц измерения?

Я ранее либо помещал их непосредственно в каждый файл реализации, либо в вспомогательный файл для каждого класса - т.е. petur.m сопровождается peturTest.m. Я чувствую, что это ведет к плохой структуре, поэтому я хотел услышать, как это сделать должным образом.

+0

Подробно о _bad structure_; У меня есть идея, как делать вещи, а также другие в моей команде. Ответ на вышеупомянутый вопрос будет связан с руководством по стилю проектов, что, в свою очередь, приведет к хорошей структуре. –

ответ

2

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

вы можете использовать документацию яблока, чтобы узнать, как настроить цель тестирования: https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/UnitTesting/02-Setting_Up_Unit_Tests_in_a_Project/setting_up.html#//apple_ref/doc/uid/TP40002143-CH3-SW1

После того, как у вас есть дополнительный целевой набор для модульных тестов, весь код модульного тестирования будут включены в этот цели, но не в целевой цели. Типичный шаблон состоит в том, чтобы иметь 1 или более классов тестов для каждого тестируемого класса в вашем приложении. Если вам нужно выявить какие-либо дополнительные функции (выставить методы или свойства объекта с целью настройки переменных состояния и т. Д.), Я рекомендую писать их как категории на ваших производственных классах.

Смежные вопросы