About Unit-Testing on iOS — book cover
A book for iOS developers Книга для iOS-разработчиков

About Unit-Testing on iOS Про тестирование на iOS

For seven years I was responsible for growth at Dodo Pizza, then left for a startup. All that time I studied how to test — how it shapes processes and architecture, and how it helps an app grow. In this book I share what I learned: how to write few tests with high payoff, and how AI reshaped the whole testing process. 7 лет я отвечал за рост Додо Пиццы, а затем ушел в стартап. Все это время я изучал, как тестировать, как это влияет на процессы и архитектуру и как помогает приложению расти. В книге рассказываю итоги: как писать мало тестов с высокой эффективностью и как на весь процесс тестирования повлиял искусственный интеллект.

Read for free Читать бесплатно

Start with two free chapters Начните с двух бесплатных глав

Sample the book before you buy — these chapters are open in full. Попробуйте книгу перед покупкой — эти главы открыты целиком.

What's inside Что внутри

12 articles, and more on the way 12 статей — и это только начало

The book is being written in the open — these chapters are live now, and more land at no extra cost. Книга пишется открыто: эти главы уже доступны, остальные добавляются бесплатно.

1 Mobile testing basics Особенности мобильных тестов
  • App growthРост приложения Why a growing app is exactly when tests start to pay off. Почему на растущем приложении тесты начинают окупаться.
  • Tests across the pyramidПримеры тестов в пирамиде тестирования FreeБесплатно Unit, integration, and UI tests — with concrete examples of each. Модульные, интеграционные и UI-тесты — на конкретных примерах.
    Read it now →Читать →
  • AI and testingИИ и тестирование Where LLMs genuinely speed tests up — and where they get in the way. Где ИИ действительно ускоряет тесты, а где только мешает.
  • Test requirementsТребования для тестов A summary of all the test requirements pulled from the examples so far. Сводим воедино все требования к тестам из разобранных примеров.
2 Writing your first tests Пишем первые тесты
  • TDD kataTDD-ката Test-driven development, one small red-green step at a time. Разработка через тесты — маленькими шагами red-green.
  • Bowling kata (tutorial)Bowling-ката (туториал) An interactive kata: score a game of bowling, test-first. Интерактивная ката: считаем очки в боулинге, начиная с теста.
  • Domain-specific languageDomain Specific Language Shape a small DSL so tests read like plain sentences. Небольшой DSL, чтобы тесты читались как обычные предложения.
3 DependenciesЗависимости
  • DependenciesЗависимости What dependencies are, and why controlling them is what makes code testable.Что такое зависимости и почему их нужно контролировать, чтобы код можно было тестировать.
  • Test doublesТест-даблы FreeБесплатно What you swap a dependency for in a test — the kinds of doubles, and why this book won't use mocks. Чем подменяют зависимость в тесте: виды тест-даблов и почему в книге не будет моков.
    Read it now →Читать →
  • Linear execution in a testПоследовательное выполнение в тесте Techniques that make a test's code run in a straight, predictable line.Техники, которые делают выполнение кода в тесте последовательным и предсказуемым.
  • Legible test failuresНаглядные падения тестов Getting failures that show at a glance where it broke and what diverged.Как добиться падений, которые сразу показывают, где сломалось и что разошлось.
  • Parameterized testsТесты с параметрами Describe the inputs and the expected result — the tests are generated for you.Описываем входы и ожидаемый результат — тесты генерируются автоматически.
4 Testing view-modelsТестирование вьюмоделей UpcomingСкоро
  • Test casesТест-кейсы
  • NetworkingСеть
  • Three ways to mock the networkТри способа замокать сеть
  • Snapshot testingСнепшот-тестирование
5 Testing scenariosТестирование сценариев UpcomingСкоро
  • Testable navigation architectureАрхитектура тестируемой навигации
  • Test-driven development in a real appTest Driven Development в приложении
  • Tests → Monitoring → TestsТесты → Мониторинг → Тесты
6 Testing screens and view-modelsТестирование экранов и вьюмоделей UpcomingСкоро
  • Screenshot testingСкриншот-тестирование
  • Controlling a view's stateКонтроль над состоянием вьюшки
  • Cover half the project fast with previews: PrefireБыстрое покрытие половины проекта через превью: Prefire
7 Test properties and dev speedСвойства тестов и скорость разработки UpcomingСкоро
  • Test coverageTest-coverage
  • Testing is hardТестировать — сложно
  • Development speedСкорость разработки
  • Don't write unit tests, write…Не пишите юнит-тесты, а пишите…
  • Types of testsТипы тестов
  • Start with scenario testsНачните с тестов на сценарий
A look inside Как выглядит

Pages from the book Страницы из книги

Book page: a complex screen flow captured as a short, readable test Book page: contract tests replaying recorded API responses Book page: driving a refactor safely with tests in the TDD kata
Страница книги: сложный сценарий экрана в виде короткого читаемого теста Страница книги: контрактные тесты воспроизводят записанные ответы API Страница книги: читаемая структура теста arrange-act-assert
Start reading Начать читать

Get the book Купить книгу

A one-time purchase unlocks every chapter, with lifetime access as new ones land. Разовая покупка открывает все главы. Новые главы добавляются бесплатно, доступ — навсегда.

About Unit-Testing on iOS Про автотесты на iOS
$30 one-timeразово

Every chapter published so far, plus everything still to come — at no extra cost. Все опубликованные главы и всё, что появится дальше — без доплат.

BuyКупить — or —— или —

One-time purchase unlocks the book for the email you check out with. An all-access subscription unlocks every paid book on bookshelf.dev. Payments handled by our Merchant of Record. Разовая покупка открывает книгу для email, с которым вы оформили заказ. Подписка all-access открывает все платные книги на bookshelf.dev. Платежи — через Merchant of Record.