codeception Создание собственных функций для $I -- Actors (Действующее лицо)
Primary tabs
В codeception действия теста (например) происходят от лица некоторой сущности (лица -- класса) -- именно экземпляр этого класса присваивается переменной $I (традиционно используют именно такое имя переменной).
Обычно это экземпляр класса AcceptanceTester:
$I = new AcceptanceTester($scenario);
-- именно в этот класс можно добавлять новые собственные функции (они тоже станут доступны через $I), которые будут использоваться часто, в исходном виде он выглядит так:
class AcceptanceTester extends \Codeception\Actor
{
use _generated\AcceptanceTesterActions;
/**
* Define custom actions here
*/
}
Мы можем добавить сюда метод login - ведь логинть пользователя скорее всего придётся не один раз в разных тестах:
class AcceptanceTester extends \Codeception\Actor
{
// do not ever remove this line!
use _generated\AcceptanceTesterActions;
public function login($name, $password)
{
$I = $this;
$I->amOnPage('/login');
$I->submitForm('#loginForm', [
'login' => $name,
'password' => $password
]);
$I->see($name, '.navbar');
}
}
-- это позволит переиспользовать код, но есть и более продвинутые методы, а именно:
- Log in to post comments
- 2709 reads