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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Vladimir Pouzanov
February 11, 2012
Programming
180
1
Share
iOS TDD
Vladimir Pouzanov
February 11, 2012
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
150
Reversing WTF
farcaller
2
130
Clang 3.0 Memory Management
farcaller
1
120
Effective Multithreading in iOS
farcaller
1
130
GameKit and Social APIs
farcaller
1
89
Other Decks in Programming
See All in Programming
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
へんな働き方
yusukebe
6
2.9k
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
160
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
970
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.3k
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
300
まかせられるPM・まかせられないPM / DevTech GUILD Meetup
yusukemukoyama
0
110
Swift Concurrency Type System
inamiy
0
280
おれのAgentic Coding 2026/03
tsukasagr
1
140
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
810
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
560
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
680
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Abbi's Birthday
coloredviolet
2
6.4k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.4k
Paper Plane
katiecoart
PRO
1
49k
Crafting Experiences
bethany
1
110
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
510
The browser strikes back
jonoalderson
0
900
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
Everyday Curiosity
cassininazir
0
190
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
240
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