Я хочу написать общий метод, который в определенное время я могу просто сказать
$I->amOnPage('/');
$I->dontSeeAnyWarningsOrErrors ();
Но мне это не удается. Я использую кодирование всего несколько часов, так что я могу что-то упустить, но поиск по их сайту, их репозиторию на github и SO не помог мне.
Вот что я попробовал (результат: «ErrorException: отсутствует аргумент 1 для AcceptanceTester :: dontSeeAnyWarningsOrErrors ()»):
class AcceptanceHelper extends \Codeception\Module
{
public function dontSeeAnyWarningsOrErrors ()
{
$this->dontSee ('PHP Warning');
$this->dontSee ('PHP Error');
$this->dontSee ('PHP Notice');
$this->dontSee ('There was a website error');
$this->dontSee ('Parse error: syntax error');
$this->dontSee ('Call Stack:');
}
}
Если я назову это так:
$I->amOnPage('/');
$I->dontSeeAnyWarningsOrErrors (null);
Затем я получаю «Фатальная ошибка: вызов неопределенного метода Codeception \ Module \ AcceptanceHelper :: dontSee ()»
Также (метод не существует; кое-что я нашел в основных файлах):
$res = $this->proceedSee('PHP Warning', null);
$this->assertNot($res);
Также («Неопределенное свойство $ session» (используется Selenium с Firefox)):
$page = $this->getModule('WebDriver')->session->getPage();
Кроме того, когда я пытался использовать «dontSeeAnyWarningsOrErrors», он жалуется, если я не добавляю аргумент (в вызове), когда я не определил никаких аргументов.
Спасибо,
Hans
Мне удалось это с этим:
$I->dontSeeAnyWarningsOrErrors ($I);
А потом:
class AcceptanceHelper extends \Codeception\Module
{
public function dontSeeAnyWarningsOrErrors ($browser)
{
$browser->dontSee ('PHP Warning');
$browser->dontSee ('PHP Error');
$browser->dontSee ('PHP Notice');
$browser->dontSee ('There was a website error');
$browser->dontSee ('Parse error: syntax error');
$browser->dontSee ('Call Stack:');
}
}
Других решений пока нет …