Last active
September 14, 2016 14:42
-
-
Save kirilkirkov/1cbccaca6d3d0db4875746c6020b9fc9 to your computer and use it in GitHub Desktop.
Какво е codeception и как се използва?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Какво е? | |
- Codeception е php фреймуърк за правене на тестове за правилното изпълнение на програми/сайтове/форми..тн.. | |
Как се инсталира? | |
- Може да се инсталира лесно с composer като се следват инструкцийте в сайта на codeception: | |
http://codeception.com/quickstart | |
Какво се предлага? | |
- Системата предлага unit, functional и acceptance тестове | |
* acceptance tests: този тип тестове е за проверка на текстове които се изобразяват на браузъра след | |
събмит на форми без достъп до проверки в базата или нещо по кода и тн.. Може да тества ajax заявки, | |
има най-малко влияние от промени по кода. | |
* functional tests: Те тестват web заявки (post, get), може да се тества какво връща сървъра както и проверки в базите. | |
* Unit tetst: Тестване на парчета код | |
Разлика на suffix-иде на файловете? | |
Cept е scenario-based формат, а Cest е клас базиран формат. | |
Cept пример: | |
<?php | |
$I = new AcceptanceTester($scenario); | |
$I->wantTo('log in as regular user'); | |
$I->amOnPage('/login'); | |
$I->fillField('Username','john'); | |
$I->fillField('Password','secret'); | |
$I->click('Login'); | |
$I->see('Hello john'); | |
Cest пример: | |
<?php | |
class UserCest | |
{ | |
public function loginAsRegularUser(\AcceptanceTester $I) | |
{ | |
$I->wantTo('log in as regular user'); | |
$I->amOnPage('/login'); | |
$I->fillField('Username','john'); | |
$I->fillField('Password','secret'); | |
$I->click('Login'); | |
$I->see('Hello john'); | |
} | |
} | |
(в Cest формата е хубаво, че могат да се добавят private функций които да бъдат полезни за нещо си..) | |
Архитектура на кода? | |
- В директорията /tests/ имаме 3 папки unit, functional и acceptance в които следва да се добавят всички тестове | |
- Имаме 3 файла с имена acceptance.suite.yml, functional.suite.yml, unit.suite.yml в които се добавя | |
конфигурацята за това какви модули ще използваме и към кой url ще работят тестовете | |
- Всеки файл в отделните директорий за вида тест който ще използваме трябва да завършва на Cept или друг suffix | |
Например: tests/acceptance/SigninCept.php | |
Команди? | |
- php codecept run - стартиране на всички тестове | |
- php codecept run acceptance - с последния аргумент посочваме кой вид тест да бъде пуснат | |
- php codecept run acceptance SigninCept.php - тук даваме конкретен тест а не целия suit | |
- php codecept run tests/acceptance/SigninCept.php - това е алтернатива на горния ред | |
Евенти? | |
Могат да се симулират кликове с маркиране на css, xpath, линкове, ид, класове.. | |
Модули: | |
- За да правим връзка към базите при тест трябва да пунем db модула. | |
- WebDriver - модул за acceptance тестове | |
- WebBrawser - модул за емулиране на браузър | |
- Framework modules, PhpBrowser и WebDriver - не могат да бърдат използвани заедно! | |
* Писането на сценарий май не е лоша практика. | |
// Article by Kiril Kirkov |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
RESTful testing: