2016-08-08 33 views
1

Ich versuche, Tests für einen Controller zu schreiben und nicht abhängig von der Ausgabe HTML (die ein Front-End-Entwickler wird zweifellos mit basteln) Ich will um sicherzustellen, dass der Front-End-Entwickler alle Daten hat, die er benötigt.Wie greife ich auf die Template-Variablen in einem PHPunit-Test in Symfony

Wie kann ich auf das Datenfeld zugreifen, das in einem PHPUnit-Test an die Vorlage übergeben wird, damit ich es überprüfen kann? Ich habe das Internet (inkl. SO) und Dokumente ohne Erfolg durchsucht.

Ich weiß, ich könnte den Aufruf an den Controller vortäuschen, anstatt den Webcrawler zu verwenden, aber ist das der beste Weg, es zu tun?

Antwort

0

Controller sind High-Level-Code. Sie sollten nicht versuchen, Komponententests direkt in Controller-Methoden zu schreiben. Da Controller alle Low-Level-Klassen verdrahten, sollten Sie sich darauf konzentrieren, diese Klassen zu testen. Wenn Sie innerhalb des Controllers eine Geschäftslogik haben, die getestet werden muss, sollten Sie eine Umgestaltung dieser Aktion in Betracht ziehen.

Also mein Vorschlag wäre, Funktionstests zu verwenden, um Ihre Controller zu testen und Komponententests zu verwenden, um Ihre Modelle und Ihre Geschäftslogik zu testen.

Wenn Sie mit funktionalen Tests kämpfen, können Sie das folgende lesen: