2. Сегодня обсудим
• Что такое TDD?
• Чем VIPER полезен в тестировании?
• Тестирование компонентов VIPER-модуля
3. TDD
• Разработка через тестирование
• Тесты полностью описывают поведение
класса
• Есть статья и выступление Андрея Резанова
http://habrahabr.ru/company/rambler-co/blog/263087/
5. VIPER + TDD = ?
• Тестирование Presentation слоя
• Через тонкий VC к тестируемости
• UI-тестов недостаточно
6. Общий подход
• Боевой тестируемый компонент
• Окружаем моками
• Вызываем методы интерфейса/реализуемых
протоколов
• Проверяем вызов методов моков или
изменение свойств
7. Тестирование View
• IBAction и IBOutlet в .h
• View взаимодействует с Presenter через протокол
• Важно протестировать методы жизненного цикла
10. Тестирование Interactor
• Тестируем проксирование в BL слой и обратно
• Тестируем правильное преобразование
моделей
Interactor ServiceMock<InteractorInput>
Interactor<InteractorOutput> Callback
11. Тестирование Presenter
• Является связующим звеном модуля
• Большая часть тестов проверяет передачу
данных из одной части модуля в другую
Presenter <InteractorInput><ViewInput>
<RouterInput>
12. Тестирование Presenter
• Необходимо учитывать, что P - входная точка
• Необходимо учитывать различные входные
параметры
Presenter
<ModuleInput>
<ViewOutput>
<ViewInput>