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
80
Pixels Everywhere!
farcaller
0
140
Prepare to Dock
farcaller
1
220
REPL Done Right
farcaller
1
310
iOS in Motion
farcaller
1
92
Reversing WTF
farcaller
2
85
Clang 3.0 Memory Management
farcaller
1
73
Effective Multithreading in iOS
farcaller
1
110
GameKit and Social APIs
farcaller
1
60
Other Decks in Programming
See All in Programming
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
380
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
260
Ruby Parser progress report 2024
yui_knk
2
230
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
1.1k
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
4
90k
Regular Expressions, REXML, Automata Learning
makenowjust
0
220
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
670
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
150
Jakarta EE meets AI
ivargrimstad
1
540
実践!難読化ガイド
mitchan
0
230
あなたのアプリ、ログはでてますか?あるいはログをだしてますか? (Funabashi.dev用 軽量版)
uzulla
2
130
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
3
470
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
GitHub's CSS Performance
jonrohan
1030
450k
Teambox: Starting and Learning
jrom
131
8.7k
Debugging Ruby Performance
tmm1
72
12k
It's Worth the Effort
3n
182
27k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
[RailsConf 2023] Rails as a piece of cake
palkan
48
4.6k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Infographics Made Easy
chrislema
239
18k
Designing Experiences People Love
moore
138
23k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
Embracing the Ebb and Flow
colly
83
4.4k
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