TDDアプローチを使い始めたばかりで、コードセプションに出くわしました。
Webを頻繁に検索しましたが、コードセプションで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形式を好むかもしれません。これは、ファイルごとに複数のテストをサポートし、プライベート関数を追加することでコードを簡単に再利用できます。
結局、それは好みの問題であり、あなたはあなたが好むフォーマットを選ぶことができます。
次のような2つのテスト方法を備えた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 。