Как я могу получить доступ к актеру (например, AcceptanceTester) в помощнике Codeception

когда я использую AcceptanceHelper, сгенерированный путем кодирования (_support / AcceptanceHelper.php), как я могу получить доступ к Actor / AcceptanceTester ($ I). И как я могу получить доступ к своим функциям из StepObjects?

Я имею:

прием / _steps / MyStepObject.php

namespace AcceptanceTester;class MyStepObject extends \AcceptanceTester
{
public function deleteCookies(){
$I = $this;

$I->amGoingTo("delete all cookies...");
$I->executeInSelenium(function(\WebDriver $webdriver) {$webdriver->manage()->deleteAllCookies(); });
$I->reloadPage();
}

public function loginUser($user,$password,$language = 'Untranslated')
{
$I = $this;

$I->amOnPage(\LoginPage::$URL);
$I->deleteCookies();
$I->amGoingTo('fill the fields...');
$I->fillField(\LoginPage::$usernameField, $user);
$I->fillField(\LoginPage::$passwordField, $password);
$I->click(\LoginPage::$loginButton);
}
}

В классе _support/AcceptanceHelper.php Я хочу вызвать методы из AcceptanceTester, как $I->canSee('something') и я хочу вызывать свои собственные методы (например, 'login') из моего StepObject.

Я знаю, что могу получить определенный модуль (например, WebDriver) с $this->getModule('WebDriver'), Но как я могу получить AcceptanceTester / мой StepObject?

5

Решение

Передача переменной $ I из теста. Это немного многословно, но отлично работает.

public function deleteCookies($I){...}

а потом в тестах напиши:

$I->deleteCookies($I);

1

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

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

По вопросам рекламы [email protected]