Помощник по кодированию для использования $ I, не передавая его в помощник

Я хотел создать несколько повторно используемых методов, которые используют набор различных методов AcceptanceTester в Form Helper. Функции не подходят для PageObject, и поскольку StepObjects наследуются от AcceptanceTester, и вы можете внедрить их, заменяя AcceptanceTester в методах, и я не хочу создавать Form StepObject и вводить как AcceptTester, так и Form, которые кажутся небрежными.

Есть ли способ получить доступ к $ I в помощнике? Это похоже на случай использования помощника. Или это не тот способ, которым вы должны использовать помощников? Если не кто-то может объяснить их использование реальным примером, документы в этом разделе, кажется, не помогают моему пониманию. Я вижу, что мог бы передать $ I помощнику, но я бы предпочел внедрить два StepObjects, передав $, я просто выгляжу неправильно.

ХЕЛПЕР

<?php
namespace Helper;

class Form extends \Codeception\Module
{
public function seeFormError($message) {

$I = ???

$I->see($message, 'small.error);
}
}

ИСПОЛЬЗОВАНИЕ

protected $form;

protected function _inject(\Helper\Form $form)
{
$this->form = $form;
}

public function login()
{
$this->form->seeFormError('Enter a valid email');
}

0

Решение

<?php
namespace Codeception\Module;

class UnitHelper extends \Codeception\Module
{
public function seeFormError($message)
{
$I = $this;
$I->see($message, 'small.error');
}
}

Используйте $ I = $ this. Вы работаете над объектом, который хотите расширить.

После этого вы можете использовать новый метод в вашем cest / test, как и все остальные $I->seeFormErrors($message);

Попробуйте исправить ваше пространство имен. Пример, который я взял у моего помощника по тестированию модулей.

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector