Laravel: PHPUnit und Interaktion mit JavaScript

8

Ich habe einen sehr einfachen Popup-Dialog, der von JavaScript in meiner Laravel App gesteuert wird. Im Wesentlichen wird beim Klicken eine Klasse zum Popup div hinzugefügt, das einen CSS-Übergang verwendet, um seine Opazität von 0 auf 1 zu ändern.

Hier ist mein Test:

%Vor%

Der Übergang dauert 300 ms, also dachte ich, dass sleep ing für 500ms das Problem lösen würde, aber keine Würfel.

Und tatsächlich schlägt der Test am dontSee("Still can't find your code?") -Teil fehl, obwohl sich dieser Text innerhalb des Popups befindet, auf dem display: none beim Laden gesetzt ist.

Tue ich etwas falsch, oder ist PHPUnit nicht bewusst CSS und JavaScript wie Capybara ist (weil es in einem kopflosen läuft Browser).

Wenn ich PHPUnit nicht für diese Art von Integrationstest verwenden kann, gibt es etwas ähnliches, das ich verwenden kann ? Beachten Sie, dass ich ~ 70 andere Tests in PHPUnit habe, also egal welches andere Tool es gibt, es kann kein Großhandelsersatz sein; idealerweise würde es neben meinen PHPUnit-Tests existieren.

Bearbeiten

Relevanter Teil der Blade-Vorlage:

%Vor%

Relevantes CSS:

%Vor%     
nickcoxdotme 15.04.2016, 16:41
quelle

1 Antwort

7

Sie machen nichts falsch. In diesem Fall ist PHPUnit CSS und JavaScript nicht bekannt. Ich habe den Quellcode des Laravel Testing-Moduls geprüft (der die PHPUnit-Funktionalität erweitert) und verwendet nur einen Crawler. Daher wird kein clientseitiges Skript ausgeführt. Tatsächlich rendert es nicht einmal die Seite.

Ich habe es noch nicht benutzt, aber du kannst es versuchen phpunit-spiderling .

    
Gustavo Straube 22.04.2016, 18:16
quelle

Tags und Links