2016-06-03 6 views
0

Ich arbeite an einer bestehenden Laravel App und versuche, eine Testsuite dafür aufzubauen. Ich benutze die Mothery-Bibliothek, um die Abhängigkeiten der Klasse, die ich teste, zu verspotten, aber ich habe einen Roadblock getroffen, den ich anscheinend nicht umgehen kann.Inject Laravel Input-Eigenschaft in Mothersony-Session-Objekt

$leadRepositoryInterface = m::mock('CRM\Storage\Lead\LeadRepositoryInterface'); 
$response = m::mock('ColorJar\ApiResponse\Response'); 

$object = new LeadsController($leadRepositoryInterface, $response); 

Ich erhalte eine Fehlermeldung, wenn ich den obigen Code ausgeführt werden, da die Elternklasse von LeadsController Eingabeprüfungen :: alle() [__ current] und stürzt ab, weil Eingang :: alle() nichts zurückgibt.

Ich muss die Variable Laravel Input Fassade einstellen (ich bin sicher, dass ich die Terminologie missbrauche, sorry) für jeden Benutzer in meinem System, aber ich sehe nirgends in den Mockery Dokumenten, wie man eine Eigenschaft setzt eines verspotteten Objekts sehe ich nur, wie man Erwartungen setzt und Werte zurückgibt. Wie würde ich das tun? Will Laravel erlaubt mir, die Rückkehr von Input :: all() zu setzen?

Antwort

0

Sie können die Antwort von der Eingabe-Fassade nicht verspotten, aber Sie können die zugrunde liegende Klasse, die Request ist, verspotten. Sie würden dann so etwas tun:

Request::shouldReceive('input->all')->andReturn('someValue'); 
+0

Danke für die Antwort. Ich musste für ein bisschen zu einem anderen Projekt wechseln, aber ich werde es versuchen, wenn ich darauf zurück komme. Auf den ersten Blick scheint dies jedoch für meine Zwecke zu funktionieren. Vielen Dank! Ich werde deine Antwort akzeptieren, wenn ich das testen kann. – brianfr82