Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS TDD
Search
Vladimir Pouzanov
February 11, 2012
Programming
1
160
iOS TDD
Vladimir Pouzanov
February 11, 2012
Tweet
Share
More Decks by Vladimir Pouzanov
See All by Vladimir Pouzanov
Zinc at Rust London '14
farcaller
1
84
Pixels Everywhere!
farcaller
0
150
Prepare to Dock
farcaller
1
250
REPL Done Right
farcaller
1
310
iOS in Motion
farcaller
1
100
Reversing WTF
farcaller
2
98
Clang 3.0 Memory Management
farcaller
1
79
Effective Multithreading in iOS
farcaller
1
110
GameKit and Social APIs
farcaller
1
66
Other Decks in Programming
See All in Programming
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
110
Chrome Extension Techniques from Hell
moznion
1
160
海外のアプリで見かけたかっこいいTransitionを真似てみる
shogotakasaki
1
160
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
320
リストビュー画面UX改善の振り返り
splcywolf
0
130
Code smarter, not harder - How AI Coding Tools Boost Your Productivity | Webinar 2025
danielsogl
0
120
CRE Meetup!ユーザー信頼性を支えるエンジニアリング実践例の発表資料です
tmnb
0
630
RuboCop: Modularity and AST Insights
koic
0
110
The Weight of Data: Rethinking Cloud-Native Systems for the Age of AI
hollycummins
0
270
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
140
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
220
AI時代の開発者評価について
ayumuu
0
110
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Writing Fast Ruby
sferik
628
61k
How to Ace a Technical Interview
jacobian
276
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Producing Creativity
orderedlist
PRO
344
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Done Done
chrislema
183
16k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
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