Перейти к содержимому
Меню
  • Разработка
    •  Базы данных
    • DevOps
      • Docker
      • RabbitMQ
    • JavaScript
      • React js, учебник, документация
      • Angular 2 / Angular 4 / Angular 6
      • AngularJS учебник, уроки
    • PHP
      • DDD
      • Laravel
      • PHP Data Object/PDO
      • PHPUnit
    • Python
      • Flask
    • CSS
  • Маркетинг
    • SEO
      • e-commerce
    • SMM
    • Контент
  • Дизайн
    • Иконки
    • Шаблоны
      • PSD Шаблоны
  • Поиск
  • Разработка
    •  Базы данных
    • DevOps
      • Docker
      • RabbitMQ
    • JavaScript
      • React js, учебник, документация
      • Angular 2 / Angular 4 / Angular 6
      • AngularJS учебник, уроки
    • PHP
      • DDD
      • Laravel
      • PHP Data Object/PDO
      • PHPUnit
    • Python
      • Flask
    • CSS
  • Маркетинг
    • SEO
      • e-commerce
    • SMM
    • Контент
  • Дизайн
    • Иконки
    • Шаблоны
      • PSD Шаблоны

The Web Land

Больше чем web...

PHPUnit

Что такое PHPUnit

PHPUnit – это фреймворк модульного тестирования на языке программирования PHP. Построен на архитектуре xUnit, а именно SUnit которая стала популярна в JUnit. PHPUnit был создан Себастьяном Бергманном, и его разработка размещена на GitHub.

Идея:

PHPUnit основан на идее, что разработчики должны быстро находить ошибки в своем, только что написаном, коде и утверждать, что регрессия кода не произошла в других частях базы кода. PHPUnit использует утверждения для проверки того, что поведение конкретного компонента – или «единицы» – тестируется, как следует.

Зачем нужен PHPUnit:

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

PHPUnit может выводить результаты тестирования в нескольких разных форматах, включая JUnit XML и TestDox.

(с) Wikipedia

Модульное тестирование (англ. unit testing) — процесс в программировании,

позволяющий проверить на корректность единицы исходного кода, наборы из одного

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

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

(c) Wikipedia

Содержание:

  • 1. Установка PHPUnit
    • Требования
    • PHP Archive (PHAR)
      • Windows
      • Проверка релизов PHPUnit PHAR
    • Composer
    • Необязательные пакеты
  • 2. Написание тестов на PHPUnit
    • Зависимости тестов
    • Провайдеры данных
    • Тестирование исключений
    • Тестирование ошибок PHP
    • Тестирования вывода
    • Вывод ошибки
      • Крайние случаи
  • 3. Исполнитель тестов командной строки
    • Опции командной строки
    • TestDox
  • 4. Фикстуры
    • Больше setUp() чем tearDown()
    • Разновидности
    • Совместное использование фикстур
    • Глобальное состояние
  • 5. Организация тестов
    • Составление набора тестов с помощью файловой системы
    • Составление набора тестов с помощью конфигурации XML
  • 6. Рискованные тесты
    • Бесполезные тесты
    • Непреднамеренно покрытый код
    • Вывод во время выполнения теста
    • Тайм-аут выполнения теста
    • Манипуляция глобальным состоянием
  • 7. Неполные и пропущенные тесты
    • Неполные тесты
    • Пропущенные тесты
    • Пропуск тестов с помощью @requires
  • 8. Тестирование базы данных
    • Поддерживаемые поставщики для тестирования баз данных
    • Трудности при тестировании баз данных
    • Четыре этапа теста базы данных
      • 1. Очистка базы данных
      • 2. Настройка фикстуры
      • 3–5. Запуск теста, проверка результата и очистка
    • Конфигурация PHPUnit Database TestCase
      • Реализация getConnection()
      • Реализация getDataSet()
      • Как насчёт схемы базы данных (Database Schema, DDL)?
      • Совет: Используйте собственную абстрактную реализацию PHPUnit Database TestCase
    • Понимание DataSets и DataTables
      • Доступные реализации
      • Остерегайтесь внешних ключей
      • Реализация собственного DataSets/DataTables
    • Использование API подключения к базе данных
    • API утверждений базы данных
      • Утверждение количество строк таблицы
      • Утверждение состояния таблицы
      • Утверждение результата запроса
      • Утверждение состояния нескольких таблиц
    • Часто задаваемые вопросы
      • Будет ли PHPUnit (повторно) создавать схему базу данных для каждого теста?
      • Необходимо ли мне обязательно использовать PDO в моём приложении для расширения базы данных?
      • Что мне делать, когда я получаю ошибку «Too much Connections»?
      • Как обрабатывать NULL в наборах данных Flat XML / CSV?
  • 9. Тестовые двойники
    • Заглушки
    • Подставные объекты
    • Prophecy
    • Имитация трейтов и абстрактных классов
    • Создание заглушек и имитация веб-сервисов
    • Имитация файловой системы
  • 10. Анализ покрытия кода
    • Показатели программного обеспечения покрытия кода
    • Белый список файлов
    • Игнорирование блоков кода
    • Определение покрытых методов
    • Крайние случаи
  • 11. Логирование
    • Результаты теста (XML)
    • Покрытие кода (XML)
    • Покрытие кода (TEXT)
  • 12. Расширение PHPUnit
    • Подкласс PHPUnit\Framework\TestCase
    • Написание пользовательских утверждений
    • Реализация PHPUnit\Framework\TestListener
    • Реализация PHPUnit\Framework\Test
    • Расширение TestRunner
      • Интерфейсы доступных событий
  • Приожение
    • Утверждения
    • Аннотации
    • Конфигурационный XML-файл




Рубрики

  • Дизайн
    • Иконки
    • Шаблоны
      • PSD Шаблоны
  • Маркетинг
    • SEO
      • e-commerce
    • SMM
    • Контент
  • Разработка
    •  Базы данных
    • CSS
    • DevOps
      • AWS
      • Docker
      • RabbitMQ
    • JavaScript
      • Angular
      • angularjs
      • Reactjs
    • PHP
      • Laravel
      • PHP Data Object/PDO
      • PHPUnit
      • Symfony
    • Python
      • Flask
  • Юмор




Copyright © thewebland.net, 2014 - 2020 | КОПИРОВАНИЕ МАТЕРИАЛОВ САЙТА БЕЗ АКТИВНОЙ ГИПЕРССЫЛКИ НА ОРИГИНАЛ ЗАПРЕЩЕНО