Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

codeception не могу в тесте воспользоватся __construct(AcceptanceTester $I, $scenario)

webdriver
Теги: #<Tag:0x00007f7b64e78358>

(Руслан Бондаренко) #1

Есть код

<?php


class LoginCest
{
    private $customFunction;

    public function __construct(AcceptanceTester $I, $scenario)
    {
        $this->customFunction  = new CustomFunction($scenario);
    }

    public function _before(AcceptanceTester $I)
    {
    }

    public function _after(AcceptanceTester $I)
    {
    }

    // tests
    public function tryToTest(AcceptanceTester $I)
    {

        $I->amOnPage('/');
        $I->seeElement('input#login');
        $I->seeElement('input#password');
        $I->seeElement('button');
        $this->customFunction->test();
    }
}

При запуске теста ошибка

Fatal error: Uncaught TypeError: Argument 1 passed to LoginCest::__construct() must be an instance of AcceptanceTester, none given, called in D:\openServer\OSPanel\domains\autotests\vendor\codeception\codeception\src\Codeception\Test\Loader\Cest.php on line 36 and defined in D:\openServer\OSPanel\domains\autotests\tests\acceptance\LoginCest.php:8

Если засунуть создание объекта в метод _before, он создастся но данный метод запускается перед каждым методом в тесте, а нужно только 1 раз…


(Руслан Бондаренко) #2

Есть мысля что AcceptanceTester $I, еще не создается перед выполнением __construct… или нет…