Codeception - В чем разница между cest и cept?

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

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


person aBhijit    schedule 04.12.2014    source источник


Ответы (3)


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

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

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

person Alexandru Guzinschi    schedule 04.12.2014

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

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

person B4rb4ross4    schedule 06.10.2016
comment
для меня это не работало, всегда запускался только первый тест, но когда я переименовал файл из Cept в Cest, я позже понял, что это неизбежная необходимость, он начал работать для всех методов, а не только для первого, что сбивает с толку - person FantomX1; 08.08.2017

Не то чтобы я эксперт по Codeception, но это описание может помочь — http://codeception.com/docs/07-AdvancedUsage.

person Larry Borsato    schedule 04.12.2014
comment
Ответы только по ссылкам считаются некачественными в Stackoverflow. - person callmebob; 20.09.2019