2016-06-01 7 views
1

Ich benutze Laravel 5.2 und ich habe Seite, die Knopf mit der ID new-item haben, und wenn ich darauf klicke, lädt JavaScript-Code ein Remote-Bootstrap-Modal mit einem Formular und zeigt das Modal.Laravel 5.2 Test DOM geändert

Ich möchte die Funktionalität mit der PHPUnit mit Laravel testen. Ich habe diesen Test schreiben:

$this->visit('/'); 
    ->click('new-item'); 
    ->seeElement('.modal'); 

Die Seite funktioniert gut, aber der Test schlägt fehl. Ich bekomme Fehler, dass die Seite kein .modal Element hat, und es zeigt mir auch die HTML der Seite. Aber das HTML sieht wie die Originalseite aus, bevor das Remote-Modal in die Seite eingefügt wurde.

Wie kann ich den Test zwingen, den Seiteninhalt zu aktualisieren, nachdem das Javascript das DOM ändert?

Antwort

1

Standardmäßig verwendet Laravel PHPUnit und PHPBrowser zum Testen. PHPBrowser unterstützt kein Javascript. Wenn Sie Javascript testen möchten, müssen Sie Selen und Codeception verwenden. Codeception hat einen eingebauten Laravel-Adapter, so dass es immer noch super einfach zu bedienen ist. Ich habe es in vielen Anwendungen verwendet und es funktioniert wirklich gut.

http://codeception.com/docs/modules/Laravel5

Es gibt auch andere Optionen für Headless Browser, die JavaScript unterstützt dies nur eine Option ist.