Я впервые настраиваю набор тестов, так что, возможно, я совершаю глупую ошибку.
Я просто настроил Codeception, чтобы написать несколько тестов для проекта CodeIgniter. У меня работает несколько простых тестов (ура!), Но сейчас я пишу приемочный тест, чтобы убедиться, что моя форма входа в систему работает. Заполнение формы и нажатие кнопки «Отправить» работает нормально, но затем, когда я пытаюсь проверить страницу после отправки, оказывается, что перенаправление не выполняется.
- Содержимое страницы пустое (список узлов пуст, файл журнала равен 0 байтам)
- URL-адрес страницы - это страница, на которую я отправил, а не страница, на которую я должен быть перенаправлен.
Перенаправление - это перенаправление заголовка 301. Изменить: ЛОЖЬ. Оказывается, используемая мной библиотека аутентификации выполняет перенаправление заголовка Reload. Использование настоящего 301 решает проблему.
Я предполагаю, что за перенаправлениями нужно следить. Есть ли что-то, что мне нужно настроить / настроить для работы 301 редиректа?
Код:
Мой приемочный тест:
<?php
$I = new WebGuy($scenario);
$I->wantTo('Login');
$I->amOnPage('/');
$I->fillField('identity', '[email protected]');
$I->fillField('password', 'password');
$I->click('submit');
$I->see('Logged In Successfully');
Результат, когда я запускаю тест в режиме отладки. Ошибка InvalidArgumentException
возникает из-за того, что DOM страницы, на которую он смотрит, пуста:
Codeception PHP Testing Framework v1.7.1
Powered by PHPUnit 3.7.27 by Sebastian Bergmann.
Acceptance Tests (1) -----------------------
Trying to login (LoginCept.php)
Scenario:
* I am on page "/"
* I fill field "identity","[email protected]"
* I fill field "password","password"
* I click "submit"
* I see "Logged In Successfully"
ERROR
---------------------------------------------
Time: 3.96 seconds, Memory: 9.75Mb
There was 1 error:
---------
1) Failed to login in LoginCept.php
Sorry, I couldn't see "Logged In Successfully":
InvalidArgumentException: The current node list is empty.
Scenario Steps:
5. I see "Logged In Successfully"
4. I click "submit"
3. I fill field "password","password"
2. I fill field "identity","[email protected]"
1. I am on page "/"
[InvalidArgumentException]
#1 phar:///Users/captbaritone/Projects/codeception/codecept.phar/vendor/symfony/dom-crawler/Symfony/Component/DomCrawler/Crawler.php:494
#2 phar:///Users/captbaritone/Projects/codeception/codecept.phar/vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver.php:348
#3 phar:///Users/captbaritone/Projects/codeception/codecept.phar/vendor/behat/mink/src/Behat/Mink/Element/Element.php:101
#4 phar:///Users/captbaritone/Projects/codeception/codecept.phar/src/Codeception/Util/Mink.php:208
#5 phar:///Users/captbaritone/Projects/codeception/codecept.phar/src/Codeception/Util/Mink.php:181
#6 phar:///Users/captbaritone/Projects/codeception/codecept.phar/src/Codeception/Step.php:133
#7 phar:///Users/captbaritone/Projects/codeception/codecept.phar/src/Codeception/TestCase.php:31
#8 phar:///Users/captbaritone/Projects/codeception/codecept.phar/src/Codeception/Scenario.php:87
#9 /Users/captbaritone/Projects/codeception/tests/acceptance/WebGuy.php:571
#10 /Users/captbaritone/Projects/codeception/tests/acceptance/LoginCept.php:8
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.