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
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
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.8k
CSC307 Lecture 11
javiergs
PRO
0
580
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
680
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
220
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
150
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
490
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
320
ぼくの開発環境2026
yuzneri
1
270
kintone + ローカルLLM = ?
akit37
0
100
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
250
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
210
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
The Cult of Friendly URLs
andyhume
79
6.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.3k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
53k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
450
The World Runs on Bad Software
bkeepers
PRO
72
12k
Visualization
eitanlees
150
17k
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