Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
iOS TDD
Vladimir Pouzanov
February 11, 2012
Programming
1
150
iOS TDD
Vladimir Pouzanov
February 11, 2012
Tweet
Share
More Decks by Vladimir Pouzanov
See All by Vladimir Pouzanov
farcaller
1
51
farcaller
0
120
farcaller
1
160
farcaller
1
290
farcaller
1
56
farcaller
2
54
farcaller
1
52
farcaller
1
83
farcaller
1
21
Other Decks in Programming
See All in Programming
panini
1
160
larsrh
0
110
morimorihoge
1
150
rince
3
230
danilop
0
230
manfredsteyer
PRO
0
200
prof18
0
1.3k
christianweyer
PRO
0
280
temoki
2
220
takutakahashi
3
270
grapecity_dev
0
180
yasaichi
31
7.9k
Featured
See All Featured
revolveconf
200
9.7k
chriscoyier
498
130k
morganepeng
93
14k
colly
188
14k
searls
204
36k
jakevdp
775
200k
keithpitt
401
20k
skipperchong
8
710
jcasabona
8
550
malarkey
193
8.6k
pauljervisheath
195
15k
trishagee
24
2.5k
Transcript
None
iOS TDD Vladimir “farcaller” Pouzanov
Как мы используем TDD для разработки
Как мы используем TDD для ускорения разработки
Как вам использовать TDD для ускорения разработки
Цикл TDD
Написать тест
Написать тест Написать реализацию
Написать тест Написать реализацию Смыть, повторить
Написать тест Написать реализацию Смыть, повторить
Общие проблемы
Вы тестируете не то, что необходимо
Вы тестируете не то, что необходимо, а то, к чему
получается написать тест
Вы тестируете не изолированный компонент
Вы тестируете не изолированный компонент, а часть общей схемы
Вы тестируете не чистое состояние объекта
Вы тестируете не чистое состояние объекта, а то, в котором
он хоть как-то работает
Кто виноват?
Неявная реализация MVC где-то между Model и Controller
Жесткое связывание
Синглтоны
Сетевой стек
Сложность интеграции OCUnit
Широкий набор сторонних фреймворков
Что делать?
Double-click to edit
Dependency Injection
Objection
Injective
Как тестируют в «лучшем» мире
Ruby
Rails
RSpec & Cucumber
Kiwi & Cucumber
UIAutomation + jasmine
Посмотрим?
Что дальше?
Рефакторинг!
Поиск мертвецов
Подчистка копипасты
Еще раз
Тестировать – хорошо и полезно
Dependency Injection упрощает создание тестового окружения
Тесты позволяют рефакторить безболезненно
Проверка покрытия намекает на то, что вы реально тестируете
Спасибо.
Вопросы? #iosdevcamp