In symfony 3-Controller-Datei habe ich Funktion:Behat 3 Nerz Test Umleitung
/**
* @Route("/user/registration", name="post_registration")
* @Method("POST")
* @return mixed
*/
public function postRegistration()
{
$post = $this->getAllPost();
$this->curl = $this->get('ApiClient');
$responseArray = $this->curl->post(
$this->container->getParameter('api_url') . '/users',
$post
);
if (isset($responseArray['api_key'])) {
return $this->redirectResponseWithCookie($responseArray['api_key']);
} else {
return $this->render(
static::REGISTRATION_TEMPLATE,
['errors' => $responseArray['errors']]
);
}
}
In einem Teil ruft Funktion
redirectResponseWithCookie()
, die die Seite umleiten soll.
Ich möchte Umleitungsheader testen - hat es den richtigen Location-Wert.
Ich habe Funktion in UserRegistrationContext Klasse
class UserRegistrationContext extends BaseContext implements Context, SnippetAcceptingContext
{
/**
* @When I register successfully into the system
* @return null
*/
public function iRegisterSuccessfullyIntoTheSystem()
{
$this->canIntercept();
$this->session->getDriver()->getClient()->followRedirects(false);
// Enters his data
// Posts to www.notification.guru .
$this->session->getDriver()->getClient()
->request('POST', $this->baseUrl . '/user/registration', $this->getFormArray());
echo 'test';
}
}
BaseContext Klasse nur einige Hilfsfunktionen, seine contructor inits Sitzung:
$driver = new GoutteDriver();
$this->session = new Session($driver);
dieser Teil könnte falsch sein:
$this->session->getDriver()->getClient()->followRedirects(false);
Ich habe gerade Code von Behat 2.5 genommen und versucht, es mit Behat 3 zu arbeiten, aber nicht sicher, ob es korrekt ist, aber zumindest keinen Fehler wirft.
Es sollte aufhören umleiten, so dann mit, ich könnte eine Antwort-Header erhalten
getResponseHeaders()
Aber das Problem ist, dass es die Umleitung versucht und Code fehlschlägt, weil echte Website nicht lauched ist noch, wo es umleitet. Und ich wäre auch nicht in der Lage, Header nach einer echten Umleitung zu testen.
Also muss die Umleitung gestoppt werden, denke ich.
Wie geht das? Ich kann keine Informationen finden.
Test nicht an der Linie
$this->session->getDriver()->getClient()
->request('POST', $this->baseUrl . '/user/registration', $this->getFormArray());
Eigentlich einen Test nach dem Ausführen ich sehe, gibt es keinen Fehler in diesem Code, ich nicht gut in der Konsole gesehen habe. –