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
90
Pixels Everywhere!
farcaller
0
150
Prepare to Dock
farcaller
1
260
REPL Done Right
farcaller
1
310
iOS in Motion
farcaller
1
120
Reversing WTF
farcaller
2
110
Clang 3.0 Memory Management
farcaller
1
95
Effective Multithreading in iOS
farcaller
1
110
GameKit and Social APIs
farcaller
1
74
Other Decks in Programming
See All in Programming
What's new in Spring Modulith?
olivergierke
1
170
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
320
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
3
960
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
190
理論と実務のギャップを超える
eycjur
0
180
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
120
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.5k
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
250
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
230
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
3
720
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
Practical Orchestrator
shlominoach
190
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Documentation Writing (for coders)
carmenintech
75
5.1k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
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