Codeception — это фреймворк для тестирования веб-приложений. Тесты, написанные с использованием этого фреймворка легко писать, модифицировать и исполнять. Используя набор готовых модулей, вы можете сконцентрироваться на написании самих тестов, вместо того, чтобы изобретать тестовый фреймворк.
Codeception позволяет писать 3 вида тестов.
Приемочные (Acceptance) тесты позволяют тестировать веб-сайт с точки зрения пользователя — переходить по страницам, кликать по ссылкам, заполнять формы и т.д. Не имеет значение, какой фреймворк, база данных, язык программирования или веб-сервер используются чтобы отобразить веб-страницу. Любая веб-страница, которую вы можете посетить с помощью веб-браузера может быть покрыта такими тестами.
Функциональные (Functional) тесты позволяют тестировать веб-приложение без запуска веб-сервера. Мы можем, например, эмулировать запрос к веб-серверу, передавая $_GET и $_POST переменные, проверяя, что мы получаем правильный ответ при данном запросе и что отправленные данные корректно сохраняются в базе данных.
Модульные (Unit) тесты позволяют изолированно тестировать отдельные функции и классы.
Предположим, нам нужно менять значение опции, полученной с помощью функции get_option. После каждого изменения, нам нужно загружать веб-страницу и смотреть, есть ли на экране какие-либо элементы. Данная статья рассказывает, как это реализовать.
WP-Browser — набор модулей для Codeception облегчающий тестирование тем и плагинов для WordPress. Мы будем использовать только модуль WPBootstrapper позволяющий вызывать функции WordPress прямо в тестах.
Codeception позволяет писать 3 вида тестов.
Приемочные (Acceptance) тесты позволяют тестировать веб-сайт с точки зрения пользователя — переходить по страницам, кликать по ссылкам, заполнять формы и т.д. Не имеет значение, какой фреймворк, база данных, язык программирования или веб-сервер используются чтобы отобразить веб-страницу. Любая веб-страница, которую вы можете посетить с помощью веб-браузера может быть покрыта такими тестами.
Функциональные (Functional) тесты позволяют тестировать веб-приложение без запуска веб-сервера. Мы можем, например, эмулировать запрос к веб-серверу, передавая $_GET и $_POST переменные, проверяя, что мы получаем правильный ответ при данном запросе и что отправленные данные корректно сохраняются в базе данных.
Модульные (Unit) тесты позволяют изолированно тестировать отдельные функции и классы.
WordPress и Codeception
WP-Browser — набор модулей для Codeception облегчающий тестирование тем и плагинов для WordPress. Мы будем использовать только модуль WPBootstrapper позволяющий вызывать функции WordPress прямо в тестах.
- Создайте директорию и файл composer.json
mkdir codeception_tests && cd codeception_tests touch composer.json - Измените содержимое файла composer.json на:
{ "require": { "codeception/codeception": "^2.2", "lucatume/wp-browser": "~1.11" } } - Выполните команду composer install
- Создайте псевдоним
alias codecept='./vendor/bin/codecept' - Подготовьте тестовую директорию и конфигурационные файлы
codecept bootstrap - Сгенерируйте тест
codecept generate:cept acceptance Welcome - Откройте созданный файл теста tests/acceptance/WelcomeCept.php и измените его на:
// загрузка WordPress bootstrapWp(); // обновление описания блога update_option( 'blogdescription', 'Welcome to my blog' ); // Загрузка главной страницы $I->amOnPage('/'); // Проверка, что описание блога присутствует на странице $I->see('Welcome to my blog'); // Обновление описания блога update_option( 'blogdescription', 'Welcome again' ); // Обновление страницы $I->amOnPage('/'); // Проверка, что новое описание блога присутствует на странице $I->see('Welcome again'); - Добавьте следующий код в файл tests/acceptance.suite.yml
class_name: AcceptanceTester modules: enabled: - PhpBrowser: url: http://localhost/blog // url блога - \Helper\Acceptance - WPBootstrapper: wpRootFolder: '..' // путь к директории с WordPress - Запустите тест
codecept run acceptance - Тест выполнился успешно. Результат:
Codeception PHP Testing Framework v2.2.6 Powered by PHPUnit 5.6.4 by Sebastian Bergmann and contributors. Acceptance Tests (1) ------------------------------------------------ + WelcomeCept: (14.78s) --------------------------------------------------------------------- Time: 20.15 seconds, Memory: 20.00MB OK (1 test, 2 assertions)
Комментариев нет:
Отправить комментарий