Читать книгу Полезные конспекты книг и авторские заметки по информационным технологиям. Без формул онлайн


Ограничить передачу граничных интерфейсов по платформе (можно инкапсулировать).


Для стороннего кода писать тесты.


Сторонний код тестировать в рамках понимания его работы.


Конструкторы по умолчанию должны иметь конфигурацию.


Писать учебные тесты, граничные тесты.


Можно заранее определять интерфейсы, затем писать паттерн-адаптер к готовым.


Для граничного кода необходимо четкое разделение сторон и тесты, определяющие ожидания пользователя.


Количество обращений к границам стороннего кода сводится к минимуму.


Законы TDD:

– не пишите код продукта, пока не напишете отказной модульный тест;

– не пишите модульный тест в объеме большем, чем необходимо для отказа (невозможность компиляции является отказом);

– не пишите код продукта в объеме большем, чем необходимо для прохождения текущего отказного теста.


Тесты не уступают в качестве коду продукта.


Тесты развиваются вместе с продуктом.


Модульные тесты обеспечивают гибкость, удобство сопровождения и возможность повторного использования кода.


Без тестов любое изменение становится потенциальной ошибкой.


Некачественные тесты приводят к некачественному коду продукта.


Чистый тест характеризуется удобочитаемостью: ясностью, простотой и выразительностью.


В тестах использовать паттерн «построение – операции – проверка».


Тесты не делают ничего лишнего, в них используются только действительно необходимые типы и функции.


Использовать наборы функций и служебных программ, использующих API.


Код тестов не такой эффективный, как код продукта.


Чтобы избежать дублирования, можно воспользоваться паттерном шаблонный метод.


Не более 1 assert в функции теста.


Одна концепция в тесте (1 тест – 1 проверка).


Характеристики чистых тестов:

– тесты должны выполняться быстро;

– тесты не зависят друг от друга;

– тесты дают повторяемые результаты в любой среде.


Результатом выполнения теста должен быть логический признак (результат очевиден).


Тесты создаются своевременно непосредственно перед кодом продукта.


Класс должен начинаться со списка переменных.

Сначала перечисляются открытые статические константы.