So erhalten Sie während des Komponententests in Laravel Ansichtsdaten

8

Ich möchte prüfen, ob das Array, das einer Ansicht in einer Controller-Funktion übergeben wird, bestimmte Schlüsselwertpaare hat. Wie mache ich das mit PHP-Test?

%Vor%     
Nicola 15.01.2014, 13:42
quelle

6 Antworten

9

Ich habe einen besseren Weg gefunden, es zu tun. Ich habe eine Funktion im Testfall geschrieben, die das gewünschte Array aus den View-Daten zurückgibt.

%Vor%

Um einen Wert vom $ data-Objekt zu erhalten, verwende ich einfach $user = $this->getResponseData($response, 'user');

    
Nicola 17.01.2014 11:49
quelle
4

Verwenden Sie in einem Testfall:

$ data = $ this- & gt; response- & gt; getOriginalContent () - & gt; getData ();

Beispiel:

%Vor%

Beispiel für das Ausgeben von Daten, damit Sie sehen können, welche Daten (Array) zur Ansicht übergeben wurden:

%Vor%

Sollte etwas zurückbekommen wie das Bild:

    
cmac 17.11.2016 15:28
quelle
3

Also, wie assertViewHas implementiert ist HIER Es sieht so aus, dass die Methode nach dem Aufruf auf die Daten der Ansicht zugreift:

%Vor%

In Ihrem Code die Zeile:

%Vor%

gibt im Wesentlichen dasselbe zurück wie die Zeile darüber, nämlich \Illuminate\Http\Response (wodurch die Symfony-Komponente erweitert wird \HttpFoundation\Response )

In der Funktion assertViewHas sieht es also so aus, als ob Laravel mit $response->$key auf die Daten zugreift, also würde ich versuchen, über das Objekt clients auf die Variablen $response und 'content' zuzugreifen.

Wenn das nicht funktioniert, versuchen Sie, die Datei TestCase im Laravel-Framework zu durchsuchen ... Ich bin mir sicher, dass die Antwort irgendwo da ist. Versuchen Sie auch, das $response -Objekt auszugeben und zu sehen, wie es aussieht. Dort sollten einige Hinweise sein.

Als Erstes würde ich versuchen, auf Ihre Daten über das Objekt $response zuzugreifen.

    
berrberr 15.01.2014 15:28
quelle
1

Ich habe es geschafft, indem ich es chaotisch gemacht habe. Ich habe assertViewHas verwendet:

%Vor%     
Nicola 15.01.2014 16:49
quelle
0

Das hat für mich funktioniert:

%Vor%

Und von dort aus können Sie den Inhalt des Meldungsfelds auf jeden Fehler prüfen, den Sie überprüfen möchten.

    
coderama 07.03.2014 10:31
quelle
0

Sie können auf Daten in der Antwort zugreifen und es kann überprüft werden.

%Vor%     
MURATSPLAT 04.03.2015 20:35
quelle

Tags und Links