Codeception test & Yii 2

Preview:

Citation preview

Тестване с 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

Методи за тестване

Unit tests Codeception style

Примери за тестване

Модули и хелпъри

• Helpers

Yii 2 модул

http://codeception.com/docs/modules/Yii2

SOAP модул

http://codeception.com/docs/modules/SOAPhttp://codeception.com/docs/10-WebServices

Разширана употреба• Cest Classes

• Depends анотация

• Интерактивна конзола

• Групи

• Работа с данни

• Дебъгване

http://codeception.com/docs/07-AdvancedUsage

• Кога да използваме functional/acceptance тестове

• Кога да пишем тестовете?

• Кое да се тества?