2016-08-01 4 views
0

Ich schreibe einen Unit-Test-Fall für meine ZF2-Controller-Aktion. Aber ich bin stecken in der Buchung der Daten zum Controller aus Unit-Testfall-Skript.PHP-Einheit leerer Array-Wert empfangen in Zend-Controller

Der Test ist für Login-Controller-Aktion. Der Login-Controller sucht nach einem leeren Benutzernamen und Passwort. wenn es wahr ist, wird es die Schritte der Login-Aktion ausführen, die sonst zur Anmeldeseite umgeleitet werden.

Das Problem ist, dass ich Daten mit dem unten stehenden Code an den Controller übergebe. Der Controller erhält jedoch ein leeres Array. Ich verwende PHP-Version 4.8 und ZF2. Gibt es einen alternativen Weg, um die Daten zu übergeben (ich meine, die Daten zu posten).

$postData = array(
      array('login' => 'loginusername','password' => 'test') 
     ); 
     $this->dispatch('/login', 'POST', $postData); 

Antwort

0

Sie sollten wahrscheinlich ein \Zend\Http\Request Objekt an die dispatch Methode übergeben:

$parameters = new \Zend\Stdlib\Parameters(); 
$parameters->fromArray(array('login' => 'loginusername','password' => 'test')); 
$request = new \Zend\Http\Request(); 
$request->setPost($parameters); 
$controller->dispatch($request);