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
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
110
Pixels Everywhere!
farcaller
0
160
Prepare to Dock
farcaller
1
270
REPL Done Right
farcaller
1
330
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
88
Other Decks in Programming
See All in Programming
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
320
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
600
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
710
The free-lunch guide to idea circularity
hollycummins
0
300
Java 21/25 Virtual Threads 소개
debop
0
200
存在論的プログラミング: 時間と存在を記述する
koriym
3
290
ロボットのための工場に灯りは要らない
watany
11
3k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
130
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.6k
Ruby and LLM Ecosystem 2nd
koic
1
1.2k
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
130
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
170
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Speed Design
sergeychernyshev
33
1.6k
Crafting Experiences
bethany
1
91
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to make the Groovebox
asonas
2
2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Embracing the Ebb and Flow
colly
88
5k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
130
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