Подтвердить что ты не робот

Кодекс - В чем разница между cest и cept?

Я только начал использовать подход TDD и наткнулся на код.

Я много искал в Интернете, но не нашел правильного объяснения или различия между cest и cept файлами в генерации кода.

4b9b3361

Ответ 1

Их формат - единственная разница.

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');

Пример cest:

<?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, который может поддерживать несколько тестов на один файл и легко повторное использование кода, добавляя дополнительные частные функции.

В конце концов, это просто вопрос вкуса, и вы можете выбрать формат, который вы предпочитаете.

Ответ 3

Если у вас есть 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');

Это всего лишь два разных способа структурирования тестового кода.