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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Vladimir Pouzanov
February 11, 2012
Programming
1
180
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
100
Pixels Everywhere!
farcaller
0
150
Prepare to Dock
farcaller
1
270
REPL Done Right
farcaller
1
320
iOS in Motion
farcaller
1
140
Reversing WTF
farcaller
2
120
Clang 3.0 Memory Management
farcaller
1
120
Effective Multithreading in iOS
farcaller
1
130
GameKit and Social APIs
farcaller
1
85
Other Decks in Programming
See All in Programming
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
100
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
250
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
240
文字コードの話
qnighy
44
17k
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
140
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
Codex の「自走力」を高める
yorifuji
0
1.1k
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
780
あなたはユーザーではない #PdENight
kajitack
4
340
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
110
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
530
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
15
2.8k
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
780
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Thoughts on Productivity
jonyablonski
75
5.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
70
The Language of Interfaces
destraynor
162
26k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Test your architecture with Archunit
thirion
1
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Building Adaptive Systems
keathley
44
2.9k
Done Done
chrislema
186
16k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
670
sira's awesome portfolio website redesign presentation
elsirapls
0
190
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