Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOS TDD
Search
Vladimir Pouzanov
February 11, 2012
Programming
190
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOS TDD
Vladimir Pouzanov
February 11, 2012
More Decks by Vladimir Pouzanov
See All by Vladimir Pouzanov
Zinc at Rust London '14
farcaller
1
160
Pixels Everywhere!
farcaller
0
180
Prepare to Dock
farcaller
1
290
REPL Done Right
farcaller
1
340
iOS in Motion
farcaller
1
160
Reversing WTF
farcaller
2
140
Clang 3.0 Memory Management
farcaller
1
140
Effective Multithreading in iOS
farcaller
1
150
GameKit and Social APIs
farcaller
1
100
Other Decks in Programming
See All in Programming
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
12
4.4k
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
120
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
Kotlinの15年とServer-Side Kotlin
n_takehata
1
170
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
430
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.5k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1.1k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
340
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
590
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
150
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.8k
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
550
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Designing for Timeless Needs
cassininazir
1
530
GraphQLとの向き合い方2022年版
quramy
50
15k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Automating Front-end Workflow
addyosmani
1370
210k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
380
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
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