Je viens de commencer à utiliser l'approche TDD et suis tombé sur la réception de code.
J'ai beaucoup cherché sur le Web, mais je n'ai pas trouvé d'explication ni de distinction entre les fichiers cest
et cept
dans la réception de code.
Leur format est la seule différence.
Cept est un format basé sur des scénarios et Cest est un format basé sur des classes.
<?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');
}
}
Les non-développeurs peuvent trouver le format Cept plus convivial et abordable. Les développeurs PHP préféreront peut-être le format Cest , capable de prendre en charge plusieurs tests par fichier et de réutiliser facilement le code en ajoutant des fonctions privées supplémentaires.
En fin de compte, tout est une question de goût et vous pouvez choisir le format que vous préférez.
Si vous avez un test avec 2 méthodes de test comme
<?php
class UserCest
{
public function test1(\AcceptanceTester $I)
{
$I->see('Hello john');
}
public function test2(\AcceptanceTester $I)
{
$I->see('Hello jeff');
}
}
C'est l'équivalent de Test1Cept.php:
<?php
$I = new AcceptanceTester($scenario);
$I->see('Hello john');
test2Cept.php:
<?php
$I = new AcceptanceTester($scenario);
$I->see('Hello jeff');
Il n'y a que 2 façons différentes de structurer votre code de test
Je ne suis pas un expert en codeception, mais cette description peut aider - http://codeception.com/docs/07-AdvancedUsage .