2015-05-21 3 views
2

Я строю API Приемочные тесты с Codeception.Как подключиться к событию beforeSuite с помощью 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 
    } 
} 

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

ответ

4

Нельзя определить _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(); 
    } 
} 

Это должно сделать трюк.

+2

Не работает для меня. Вместо '$ I', определяемого как« AcceptanceTester », я получил массив конфигурации внутри метода' _beforeSuite' – FelikZ

+0

$ array передается в _beforeSuite. если вы хотите $ I, то вы делаете это $ I = $ this ;. – dwenaus

Смежные вопросы