Я пытаюсь протестировать свое небольшое веб-приложение с помощью 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 в форме?
Протестируйте свою форму, используя следующий фрагмент:
//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
Я думаю, что он просто не может найти имя кнопки или идентификатор, что бы это ни было.
проверьте свой фактический ответ, действительно ли он возвращает страницу входа, используя die ($ client-> getResponse () -> getContent ()); в тестовом случае
Привет, извините, в основном мне нужно было дать кнопке имя в ветке вместо идентификатора, который я никогда не осознавал, однако спасибо за вашу помощь, очень признателен.
Я также пробовал $ form = $ crawler-> selectButton ('Sign in'), но это тоже не работает.