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
- 2221 reads