Как подключиться к событию beforeSuite с помощью Codeception для приемочных тестов API?

Я создаю приемочные тесты API с помощью Codeception.

Я знаком с модульными тестами и использовал метод 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
    }
}

Я могу сделать такой метод, как setUp, но тогда Codeception выполняет его как тест и, таким образом, выводит что-то при запуске тестов.


person Hector Ordonez    schedule 21.05.2015    source источник


Ответы (1)


Вы не должны определять _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();
    }
}

Это должно сработать.

person Luís Cruz    schedule 22.05.2015
comment
У меня не работает. Вместо $I, определенного как AcceptanceTester, я получил массив конфигурации внутри метода _beforeSuite - person FelikZ; 29.09.2015
comment
Массив $settings передается в _beforeSuite. если вы хотите $I, то вы делаете это $I = $это;. - person dwenaus; 01.11.2016