Функциональное тестирование с помощью кнопки phpunit 6.5.1 symfony 3.4

Я пытаюсь протестировать свое небольшое веб-приложение с помощью phpunit, но у меня возникают проблемы с отправкой форм и доступом к кнопкам с помощью сканера. Кажется, я не могу войти в систему, поскольку узел всегда сообщает, что он пустой. Я считаю, что проблема может заключаться в кнопке отправки, возможно, при попытке сослаться на нее.

private $client = null;

 public function setUp()
 {
    $this->client = static::createClient();
    $this->testlogIn();
 }

   public function testLogIn()
{
    $crawler = $this->client->request('GET', '/login');
    $form = $crawler->filter('button#logIn')
      ->form(
            [
              '_username' => 'AdminAccountKyleTest',
              '_password' => 'test'
            ],
            'POST'
        );

    $this->client->submit($form);

    $this->assertContains('Homepage', $crawler->filter('body > div.main > div > div > div:nth-child(2) > h1')->text());
}    

Это шаблон веточки для кнопки:

  <button class = "btn btn-lg btn-primary btn-block" id = "logIn" 
type = "submit">Sign in</button>

Есть ли у phpunit проблема, когда кнопка отображается в ветке вместо SubmitType в форме?

Я также пробовал $ form = $ crawler-> selectButton ('Sign in'), но это тоже не работает.

Kyle Gardner 07.08.2018 17:53
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
284
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Протестируйте свою форму, используя следующий фрагмент:

    //selectButton accepts the button id|name|text
    $form = $crawler->selectButton("logIn")->form();

    $form['_username'] = 'AdminAccountKyleTest';
    $form['_password'] = 'test';

    $client->submit($form);

    //follow the form request redirect after login_check
    $client->followRedirect();

Большое спасибо за ваш комментарий, однако я все еще получаю эту ошибку. 1) Tests \ AppBundle \ Controller \ DefaultControllerTest :: testLogIn InvalidArgumentException: текущий список узлов пуст. / swiftcase / vendor / symfony / symfony / src / Symfony / Component / DomC‌ rawler / Crawler.php: 5‌ 65 /swiftcase/tests/AppBundle/Controller/DefaultControllerTest. php: 114 / swiftcase / tests / AppBundle / Controller /DefaultControllerTest.‌ php: 15

Kyle Gardner 08.08.2018 10:07

Я думаю, что он просто не может найти имя кнопки или идентификатор, что бы это ни было.

Kyle Gardner 08.08.2018 10:09

проверьте свой фактический ответ, действительно ли он возвращает страницу входа, используя die ($ client-> getResponse () -> getContent ()); в тестовом случае

Abdelhafid El Kadiri 08.08.2018 11:57

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

Kyle Gardner 08.08.2018 13:14

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