Codeception - cest和cept有什么区别?

时间:2014-12-04 14:27:53

标签: php testing tdd codeception

我刚开始使用TDD方法并遇到了代码。

我在网上搜索了很多,但在代码中找不到cestcept文件之间的正确解释或区别。

3 个答案:

答案 0 :(得分:54)

他们的格式是唯一的区别。

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 格式,它能够支持每个文件的多个测试,并通过添加额外的私有函数轻松重用代码。

最后,这只是一个品味问题,你可以选择你喜欢的格式。

答案 1 :(得分:1)

如果你有一个使用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 :(得分:0)

并非我是Codeception专家,但此说明可能有所帮助 - http://codeception.com/docs/07-AdvancedUsage