Это происходит со мной в реальном проекте CodeIgniter в библиотеке аутентификации Ion Auth , но для ясности я сократил его до самой простой формы.
У меня есть этот сценарий с одной строкой, расположенный по адресу http://localhost/~captbaritone/redirect/index.php
:
<?php header("Refresh:0;url=https://google.com");¬
В моем браузере он перенаправляется на сайт Google.com.
Чтобы проверить это, я написал это приемочное испытание:
<?php $I = new WebGuy($scenario); $I->wantTo('Redirect to Google.com'); $I->amOnPage('/index.php'); $I->seeCurrentUrlEquals('https://www.google.com/');
Мой acceptance.suite.yml
выглядит следующим образом:
class_name: WebGuy modules: enabled: - PhpBrowser - WebHelper config: PhpBrowser: url: 'http://localhost/~captbaritone/redirect/'
Codeception PHP Testing Framework v1.7.1 Powered by PHPUnit 3.7.27 by Sebastian Bergmann. Acceptance Tests (1) ----------------------------------------- Trying to redirect to google.com (RedirectCept.php) Fail --------------------------------------------------------------- Time: 460 ms, Memory: 9.75Mb There was 1 failure: --------- 1) Failed to redirect to google.com in RedirectCept.php Sorry, I couldn't see current url equals "https://www.google.com/": Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -'https://www.google.com/' +'/~captbaritone/redirect/index.php' Scenario Steps: 2. I see current url equals "https://www.google.com/" 1. I am on page "/index.php" FAILURES! Tests: 1, Assertions: 1, Failures: 1.
Очевидно, что PhpBrowser не подчиняется переадресации. Изменение перенаправления на заголовок местоположения позволяет пройти тест, но я не хочу (не могу) изменить свое приложение в соответствии с набором тестов.
Это ошибка в Codeception? В PhpBrowser? (Я не совсем понимаю, где начать, а другой начинается, или если PhpBrowser – это даже отдельный проект.) Или, может быть, это функциональность, которую я не должен ожидать от безгласного браузера?
Я должен сообщить, что это мой первый опыт работы с набором тестов.
Это исправлено в Codeception 2.0:
https://github.com/Codeception/Codeception/issues/625#issuecomment-33281671
Я предлагаю вам обновить и повторить попытку.