когда я использую 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?
Передача переменной $ I из теста. Это немного многословно, но отлично работает.
public function deleteCookies($I){...}
а потом в тестах напиши:
$I->deleteCookies($I);
Других решений пока нет …