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