Codeception — зависит от теста в родительском классе

Возможно ли иметь файлы Cest, которые расширяют родительский класс и используют общий тестовый «вход», который зависит от других тестов при использовании @depends

Таким образом, мой файл Cest выглядит так же, как и в этом посте, в котором объясняется, как войти в систему и повторно использовать cookie в другом тесте. https://stackoverflow.com/a/25547268/682754

У меня есть этот общий класс, но тест в дочернем классе не запускается и выводит … Этот тест зависит от «commonCest :: login» для прохождения.

<?php

class commonCest {

const COOKIE_NAME = 'PHPSESSID';

protected $cookie;

/**
* Most tests will need to depend on this function as it logs the user in and stores the session cookie, use the
* "@depends" phpdoc comment
*
* The cookie in then  re-used by calling the following in tests:
*
*     $I->setCookie(self::COOKIE_NAME, $this->cookie);
*
* @param \AcceptanceTester $I
*/
public function login(AcceptanceTester $I) {
$I->wantTo('Login');
$I->amOnPage('/login');
$I->fillField(array('name' => 'username'), 'aaaaaa');
$I->fillField(array('name' => 'password'), 'abcdef');
$I->click('.form-actions button');
$I->seeElement('.username');
$this->cookie = $I->grabCookie(self::COOKIE_NAME);
}
}

<?php
use \AcceptanceTester;

class rolesCest extends commonCest
{

/**
* @depends login (This doesn't work)
* @depends commonCest:login (This doesn't work)
* @depends commonCest::login (This doesn't work)
*/
public function listUsers(AcceptanceTester $I)
{
// tests
}

?>

2

Решение

Просто нет CommonCest в вашем каталоге Cest. После этого вход в систему будет выполняться для каждого случая, когда класс, расширяющий commonCest, находится в вашем каталоге cest, поскольку он существует во всех них. Однако вы не должны использовать @depends для этого. Скорее логин должен быть у вашего актера или помощника, и это должно быть вызвано с _before в вашем родительском классе.

Или просто используйте stepobjects https://codeception.com/docs/06-ReusingTestCode#stepobjects и вызвать нужные функции из _before

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector