tdd и viper

14
TDD и VIPER Станислав Цыганов DevAlloy

Upload: rambler-ios

Post on 22-Jan-2017

548 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: TDD и VIPER

TDD и VIPER

Станислав Цыганов DevAlloy

Page 2: TDD и VIPER

Сегодня обсудим

• Что такое TDD?

• Чем VIPER полезен в тестировании?

• Тестирование компонентов VIPER-модуля

Page 3: TDD и VIPER

TDD

• Разработка через тестирование

• Тесты полностью описывают поведение класса

• Есть статья и выступление Андрея Резанова http://habrahabr.ru/company/rambler-co/blog/263087/

Page 4: TDD и VIPER

VIPER + TDD = ?

Presentation Level

Buisness Logic Level

Core Level

?

Page 5: TDD и VIPER

VIPER + TDD = ?

• Тестирование Presentation слоя

• Через тонкий VC к тестируемости

• UI-тестов недостаточно

Page 6: TDD и VIPER

Общий подход

• Боевой тестируемый компонент

• Окружаем моками

• Вызываем методы интерфейса/реализуемых протоколов

• Проверяем вызов методов моков или изменение свойств

Page 7: TDD и VIPER

Тестирование View

• IBAction и IBOutlet в .h

• View взаимодействует с Presenter через протокол

• Важно протестировать методы жизненного цикла

Page 8: TDD и VIPER

Тестирование View

ViewIBAction/IBOutlet <ViewOutput>

ViewIBOutlet <ViewInput>

Page 9: TDD и VIPER

Тестирование Router

• Тестируем методы переходов

• Тестируем передачу данныхRouter

<RouterInput>

transitionHandler

Page 10: TDD и VIPER

Тестирование Interactor

• Тестируем проксирование в BL слой и обратно

• Тестируем правильное преобразование моделей

Interactor ServiceMock<InteractorInput>

Interactor<InteractorOutput> Callback

Page 11: TDD и VIPER

Тестирование Presenter

• Является связующим звеном модуля

• Большая часть тестов проверяет передачу данных из одной части модуля в другую

Presenter <InteractorInput><ViewInput>

<RouterInput>

Page 12: TDD и VIPER

Тестирование Presenter

• Необходимо учитывать, что P - входная точка

• Необходимо учитывать различные входные параметры

Presenter

<ModuleInput><ViewOutput>

<ViewInput>

Page 13: TDD и VIPER

Тестирование Assembly

• Проверяем правильную настройку модуля

• Generamba создает практически завершенный набор тестов

Page 14: TDD и VIPER

Обсудили

• Что такое TDD?

• Чем VIPER полезен в тестировании?

• Тестирование компонентов VIPER-модуля

Вопросы?