Как получить объект формы в PHPUnit

Я тестирую с помощью PHPUnit.

Однако это показывает ошибку.

whitebear$ phpunit -c app src/Acme/MemberBundle/Tests/Controller/DefaultControllerTest.php 
PHPUnit 4.8.35 by Sebastian Bergmann and contributors.

E

Time: 1.18 seconds, Memory: 90.25MB

There was 1 error:

1) Acme\MemberBundle\Tests\Controller\DefaultControllerTest::testIndex
InvalidArgumentException: The current node list is empty.

Я думаю, что-то не так с "selectButton".

$crawlerLogin = $client->request('GET', '/login');
$form = $crawlerLogin->selectButton('submit')->form();
$form['_username'] = 'myuser';
$form['_password'] = 'mypass'; 
$crawler = $client->submit($form);

Это html для тестирования, сгенерированного php.

<form action="/wisdom/web/app_dev.php/login_check" method="post">
            <input type="hidden" name="_csrf_token" value="fEIiYQbeYn-qt-siza3GKybh3RFSp5eOh-Nas5hyyh4" />

    <label for="username">Username</label>
    <input type="text" id="username" name="_username" value="" required="required" />

    <label for="password">Password</label>
    <input type="password" id="password" name="_password" required="required" />

    <input type="checkbox" id="remember_me" name="_remember_me" value="on" />
    <label for="remember_me">Remember me</label>

    <input type="submit" id="_submit" name="_submit" value="Log in" />
</form>

1 ответ

Решение

Из документа:

selectButton() метод доступен на сканере, который возвращает другой сканер, соответствующий кнопке (input[type=submit], input[type=image]или кнопка) с заданным текстом.

Вы должны передать текст кнопки, поэтому попробуйте:

$form = $crawlerLogin->selectButton('Log in')->form();

Надеюсь это поможет

Другие вопросы по тегам