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
160
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
85
Pixels Everywhere!
farcaller
0
150
Prepare to Dock
farcaller
1
250
REPL Done Right
farcaller
1
310
iOS in Motion
farcaller
1
100
Reversing WTF
farcaller
2
98
Clang 3.0 Memory Management
farcaller
1
79
Effective Multithreading in iOS
farcaller
1
110
GameKit and Social APIs
farcaller
1
66
Other Decks in Programming
See All in Programming
ComposeでのPicture in Picture
takathemax
0
130
M5UnitUnified 最新動向 2025/05
gob
0
120
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
120
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
1
170
Road to RubyKaigi: Making Tinny Chiptunes with Ruby
makicamel
4
540
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
150
Orleans + Sekiban + SignalR でリアルタイムWeb作ってみた
tomohisa
0
230
The Missing Link in Angular’s Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
140
Making TCPSocket.new "Happy"!
coe401_
1
3k
2ヶ月で生産性2倍、お買い物アプリ「カウシェ」4チーム同時改善の取り組み
ike002jp
1
110
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
160
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
1
4.8k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Visualization
eitanlees
146
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
550
Optimising Largest Contentful Paint
csswizardry
37
3.2k
RailsConf 2023
tenderlove
30
1.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Practical Orchestrator
shlominoach
187
11k
Done Done
chrislema
184
16k
Building Applications with DynamoDB
mza
94
6.4k
Facilitating Awesome Meetings
lara
54
6.3k
Producing Creativity
orderedlist
PRO
344
40k
Gamification - CAS2011
davidbonilla
81
5.3k
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