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
79
Pixels Everywhere!
farcaller
0
140
Prepare to Dock
farcaller
1
200
REPL Done Right
farcaller
1
300
iOS in Motion
farcaller
1
82
Reversing WTF
farcaller
2
74
Clang 3.0 Memory Management
farcaller
1
67
Effective Multithreading in iOS
farcaller
1
110
GameKit and Social APIs
farcaller
1
53
Other Decks in Programming
See All in Programming
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
350
Goのエラースタックトレースの歴史と今後
sonatard
9
1.5k
What We Can Learn From OSS
inouehi
0
420
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
780
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
840
"config" ってなんだ? / What is "config"?
okashoi
0
240
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
260
Polars入門
daikikatsuragawa
1
100
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
400
Java 22 Overview
kishida
1
180
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
The Language of Interfaces
destraynor
151
23k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Documentation Writing (for coders)
carmenintech
60
3.9k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
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