Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOS TDD
Search
Vladimir Pouzanov
February 11, 2012
Programming
1
170
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
97
Pixels Everywhere!
farcaller
0
150
Prepare to Dock
farcaller
1
260
REPL Done Right
farcaller
1
320
iOS in Motion
farcaller
1
130
Reversing WTF
farcaller
2
120
Clang 3.0 Memory Management
farcaller
1
100
Effective Multithreading in iOS
farcaller
1
120
GameKit and Social APIs
farcaller
1
78
Other Decks in Programming
See All in Programming
Microservices rules: What good looks like
cer
PRO
0
1k
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.1k
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
230
STYLE
koic
0
110
AIコーディングエージェント(NotebookLM)
kondai24
0
160
[SF Ruby Conf 2025] Rails X
palkan
0
480
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
120
dotfiles 式年遷宮 令和最新版
masawada
1
710
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
Go コードベースの構成と AI コンテキスト定義
andpad
0
110
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
200
無秩序からの脱却 / Emergence from chaos
nrslib
2
12k
Featured
See All Featured
Visualization
eitanlees
150
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
How to Ace a Technical Interview
jacobian
280
24k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Typedesign – Prime Four
hannesfritz
42
2.9k
Balancing Empowerment & Direction
lara
5
790
The Language of Interfaces
destraynor
162
25k
The Pragmatic Product Professional
lauravandoore
37
7.1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Being A Developer After 40
akosma
91
590k
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