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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Vladimir Pouzanov
February 11, 2012
Programming
1
180
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
110
Pixels Everywhere!
farcaller
0
160
Prepare to Dock
farcaller
1
270
REPL Done Right
farcaller
1
330
iOS in Motion
farcaller
1
140
Reversing WTF
farcaller
2
120
Clang 3.0 Memory Management
farcaller
1
120
Effective Multithreading in iOS
farcaller
1
130
GameKit and Social APIs
farcaller
1
88
Other Decks in Programming
See All in Programming
How to stabilize UI tests using XCTest
akkeylab
0
140
おれのAgentic Coding 2026/03
tsukasagr
1
120
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
430
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
280
AI 開発合宿を通して得た学び
niftycorp
PRO
0
180
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
850
Java 21/25 Virtual Threads 소개
debop
0
300
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
Rethinking API Platform Filters
vinceamstoutz
0
2.3k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
Designing for humans not robots
tammielis
254
26k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
140
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
440
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Balancing Empowerment & Direction
lara
5
1k
Technical Leadership for Architectural Decision Making
baasie
3
300
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
130
Odyssey Design
rkendrick25
PRO
2
560
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