Codeception — Какая разница между cest и cept?

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

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

27

Решение

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

Cept — это формат, основанный на сценариях, а Cest — это формат, основанный на классах.

Cept пример:

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

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

53

Другие решения

Если у вас есть 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 разных способа структурирования вашего тестового кода

1

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

0
По вопросам рекламы [email protected]