当我使用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')
,我想从我的StepObject调用自己的方法(如'login'
)。
我知道我可以使用$this->getModule('WebDriver')
获取特定模块(例如WebDriver)。但是如何获得AcceptanceTester / my StepObject?
答案 0 :(得分:2)
从测试中传入$ I变量。它有点冗长,但工作正常。
public function deleteCookies($I){...}
然后在测试中写道:
$I->deleteCookies($I);