Справка
x
Поиск
Закладки
Озвучить книгу
Изменить режим чтения
Изменить размер шрифта
Оглавление
Для озвучивания и цитирования книги перейдите в режим постраничного просмотра.
Искусство автономного тестирования с примерами на C#. 2-е издание
ЧАСТЬ II. Основные приемы
Предыдущая страница
Следующая страница
Table of contents
Предисловие Роберта С. Мартина ко второму изданию
Предисловие Майкла Фэзерса ко второму изданию
Вступление
Благодарности
Об этой книге
+
Об иллюстрации на обложке
ЧАСТЬ I. Приступая к работе
+
ЧАСТЬ II. Основные приемы
-
Глава 3. Использование заглушек для разрыва зависимостей
3.1. Введение в заглушки
3.2. Выявление зависимости от файловой системы в LogAn
3.3. Как можно легко протестировать LogAnalyzer
3.4. Рефакторинг проекта с целью повышения тестопригодности
3.4.1. Выделение интерфейса с целью подмены истинной реализации
3.4.2. Внедрение зависимости: внедрение поддельной реализации в тестируемую единицу работы
3.4.3. Внедрение подделки на уровне конструктора (внедрение через конструктор)
3.4.4. Имитация исключений от подделок
3.4.5. Внедрение подделки через установку свойства
3.4.6. Внедрение подделки непосредственно перед вызовом метода
3.5. Варианты рефакторинга
3.5.1. Использование выделения и переопределения для создания поддельных результатов
3.6. Преодоление проблемы нарушения инкапсуляции
3.6.1. internal и [InternalsVisibleTo]
3.6.2. Атрибут [Conditional]
3.6.3. Использование директив #if и #endif для условной компиляции
3.7. Резюме
Глава 4. Тестирование взаимодействий с помощью подставных объектов
4.1. Сравнение тестирования взаимодействий с тестированием на основе значений и состояния
4.2. Различия между подставками и заглушками
4.3. Пример простой рукописной подставки
4.4. Совместное использование заглушки и подставки
4.5. Одна подставка на тест
4.6. Цепочки подделок: заглушки, порождающие подставки или другие заглушки
4.7. Проблемы рукописных заглушек и подставок
4.8. Резюме
Глава 5. Изолирующие каркасы генерации подставных объектов
5.1. Зачем использовать изолирующие каркасы?
5.2. Динамическое создание поддельного объекта
5.2.1. Применение NSubstitute в тестах
5.2.2. Замена рукописной подделки динамической
5.3. Подделка значений
5.3.1. Встретились в тесте подставка, заглушка и священник
5.4. Тестирование операций, связанных с событием
5.4.1. Тестирование прослушивателя события
5.4.2. Тестирование факта генерации события
5.5. Современные изолирующие каркасы для .NET
5.6. Достоинства и подводные камни изолирующих каркасов
5.6.1. Каких подводных камней избегать при использовании изолирующих каркасов
5.6.2. Неудобочитаемый тестовый код
5.6.3. Проверка не того, что надо
5.6.4. Наличие более одной подставки в одном тесте
5.6.5. Избыточное специфицирование теста
5.7. Резюме
Глава 6. Внутреннее устройство изолирующих каркасов
6.1. Ограниченные и неограниченные каркасы
6.1.1. Ограниченные каркасы
6.1.2. Неограниченные каркасы
6.1.3. Как работают неограниченные каркасы на основе профилировщика
6.2. Полезные качества хороших изолирующих каркасов
6.3. Особенности, обеспечивающие неустареваемость и удобство пользования
6.3.1. Рекурсивные подделки
6.3.2. Игнорирование аргументов по умолчанию
6.3.3. Массовое подделывание
6.3.4. Нестрогое поведение подделок
6.3.5. Нестрогие подставки
6.4. Антипаттерны проектирования в изолирующих каркасах
6.4.1. Смешение понятий
6.4.2. Запись и воспроизведение
6.4.3. Липкое поведение
6.4.4. Сложный синтаксис
6.5. Резюме
ЧАСТЬ III. Тестовый код
+
ЧАСТЬ IV. Проектирование и процесс
+
ПРИЛОЖЕНИЕ. Инструменты и каркасы
+
Предметный указатель
Данный блок поддерживает скрол*