Post on 17-Jul-2015
transcript
Тестване с Codeception
Тихомил Кулев 21.09.2014
Теми• Codeception - основа (basic, модули, helpers) • Видове тестове
• Acceptance test • Functional tests • Unit tests
• Настройка и инсталация на Codeception в Yii 2 • Acceptance/Funcional/Unit tests Codeception style • Модули и хелпъри • Yii 2 модул • SOAP модул • Разширана употреба
А ти тестваш ли кода си?
Codeception - основа
• Позволява автоматично тестване на PHP код
• Базирано върху PHPUnit и Symfony2
• Лесна разширеямост (чрез модули)
• Поддържа много frameworks, включително Yii 1/2
Видове тестове
• Acceptance tests (WebGuy)
• Functional tests (TestGuy)
• Unit tests (CodeGuy)
• Api tests (ApiGuy)
Acceptance tests• Емулация на браузър
• Тестване на всеки сайт
• Тестване на JS и AJAX
• Лесно четимо от хора (не-програмисти)
• Стабилно при промяна на кода
• Бавно тестване
Functional tests• Емулация на зявка и изпращане към сървъра
• Оценява спрямо получения резултат
• Базирано е на Framework-а (env based)
• Все още четимо от хора
• Не може да се тества JS/AJAX
• По-бързо спрямо Acceptance tests
Unit tests• Работи посредством PHPUnit
• Тестовете са по-прости
• Не четимо от нормални хора
• Тестване на основна фунционалност
• Изолирани тестове
• Най-бързо теставне
Настройка и инсталация на Codeception в Yii 2
Инсталацияphp composer.phar “codeception/codeception:@stable”
Файловеacceptance.suite.yml, functional.suite.yml, unit.suite.yml
Настройка и инсталация на Codeception в Yii 2
• Acceptance test
• Unit test
Codeception Основни опции
Изпълнение - vendor/bin/codecept bootstrap Ген. конфигурации - vendor/bin/codecept configure Билдване - vendor/bin/codecept build Генериране на тестове: generate:cept <suite><test> generate:test <suite><test> generate:phpunit <suite><test> generate:scenarious <suite><test> Пускане на тестове - vendor/bin/codecept run [-g]
Acceptance tests Codeception style
Методи за тестване
SOAP модул
http://codeception.com/docs/modules/SOAPhttp://codeception.com/docs/10-WebServices
Разширана употреба• Cest Classes
• Depends анотация
• Интерактивна конзола
• Групи
• Работа с данни
• Дебъгване
http://codeception.com/docs/07-AdvancedUsage
• Кога да използваме functional/acceptance тестове
• Кога да пишем тестовете?
• Кое да се тества?