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

Hec*_*nez 2 api acceptance codeception

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

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

但是我没有找到类似的验收测试。

请注意,我使用的是“类”方法,而不是过程方法。

所以我有一个这样的课程...

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
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以创建像 setUp 这样的方法,但随后 Codeception 将其作为测试执行,从而在运行测试时输出一些内容。

Luí*_*ruz 5

您不应该在类_beforeSuite内部定义Cest。相反,您应该使用内部的 Helper 类_support

假设您有一个名为 的套件,那么里面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();
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题。

  • 对我不起作用。我没有将“$I”定义为“AcceptanceTester”,而是在“_beforeSuite”方法内部获得了一个配置数组 (4认同)