Перейти к содержимому
Меню
  • Разработка
    •  Базы данных
    • 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 | КОПИРОВАНИЕ МАТЕРИАЛОВ САЙТА БЕЗ АКТИВНОЙ ГИПЕРССЫЛКИ НА ОРИГИНАЛ ЗАПРЕЩЕНО

This website uses cookies to provide you with the best browsing experience.

Find out more or adjust your settings.

The Web Land
Powered by  GDPR Cookie Compliance
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again.

3rd Party Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.

Please enable Strictly Necessary Cookies first so that we can save your preferences!