Я только начал использовать подход TDD и наткнулся на кодовое восприятие.
Я много искал в интернете, но не нашел должного объяснения или различия между 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');
Это просто 2 разных способа структурирования вашего тестового кода
Не то чтобы я эксперт по Codeception, но это описание может помочь — http://codeception.com/docs/07-AdvancedUsage.