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
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
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
110
Effective Multithreading in iOS
farcaller
1
120
GameKit and Social APIs
farcaller
1
81
Other Decks in Programming
See All in Programming
CSC307 Lecture 05
javiergs
PRO
0
500
Fragmented Architectures
denyspoltorak
0
150
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
260
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
430
dchart: charts from deck markup
ajstarks
3
990
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
AgentCoreとHuman in the Loop
har1101
5
230
AI時代の認知負荷との向き合い方
optfit
0
160
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.4k
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
290
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
We Have a Design System, Now What?
morganepeng
54
8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Abbi's Birthday
coloredviolet
1
4.7k
Claude Code のすすめ
schroneko
67
210k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
92
From π to Pie charts
rasagy
0
120
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
92
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Navigating Team Friction
lara
192
16k
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