如何使用Codeception进行API验收测试来挂钩beforeSuite事件?

时间:2015-05-21 10:42:49

标签: api codeception acceptance

我正在使用Codeception构建API验证测试。

我熟悉那里的单元测试,在运行该类的所有测试之前,我在这些类中使用了setUp方法来获取所需的所有逻辑。

但是我没有为接受测试找到这样的东西。

请注意,我正在使用" Class"方法,而不是程序方式。

所以我有这样的课......

class ResourceCest {
    public function _beforeSuite(ApiTester $I)
    {
        // Ideally this would work, but it doesn't.
    }

    public function _before(ApiTester $I) 
    {
        $I->am('Api Tester');
    }
    public function somethingThatIWantToExecute(ApiTester $I)
    {
        $I->sendGet('something');
        // etc
    }
}

我可以创建一个类似setUp的方法,但是然后Codeception将它作为测试执行,从而在运行测试时输出一些东西。

1 个答案:

答案 0 :(得分:3)

您不应该在_beforeSuite课程中定义Cest。相反,您应该在_support中使用Helper类。

假设您有一个名为api的套件,那么ApiHelper.php内应该有一个_support类。在那里,您可以定义您的方法,例如:

<?php
namespace Codeception\Module;

// here you can define custom actions
// all public methods declared in helper class will be available in $I

class ApiHelper extends \Codeception\Module
{
    public function _beforeSuite($I) {
        var_dump($I);
        die();
    }
}

这应该可以解决问题。