Я только начал использовать подход TDD и наткнулся на codeception.
Я много искал в Интернете, но не нашел правильного объяснения или различия между файлами cest
и cept
в кодировании.
Я только начал использовать подход TDD и наткнулся на codeception.
Я много искал в Интернете, но не нашел правильного объяснения или различия между файлами cest
и cept
в кодировании.
Их формат - единственная разница.
Cept — это формат, основанный на сценариях, а Cest — это формат, основанный на классах.
<?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');
<?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');
}
}
Не разработчикам формат Cept может показаться более удобным и доступным. Разработчики PHP могут предпочесть формат Cest, который поддерживает несколько тестов в файле и простое повторное использование кода за счет добавления дополнительных закрытых функций.
В конце концов, это всего лишь дело вкуса, и вы можете выбрать формат, который вам больше нравится.
Если у вас есть Cest с двумя методами тестирования, такими как
<?php
class UserCest
{
public function test1(\AcceptanceTester $I)
{
$I->see('Hello john');
}
public function test2(\AcceptanceTester $I)
{
$I->see('Hello jeff');
}
}
Это эквивалентно test1Cept.php:
<?php
$I = new AcceptanceTester($scenario);
$I->see('Hello john');
test2Cept.php:
<?php
$I = new AcceptanceTester($scenario);
$I->see('Hello jeff');
Это всего лишь два разных способа структурирования тестового кода.
Не то чтобы я эксперт по Codeception, но это описание может помочь — http://codeception.com/docs/07-AdvancedUsage.