Sowohl Laravel als auch Selen verwenden die Behauptungen von PHPUnit. In Laravel und Selenium schreiben Sie Code, um Tests zu machen (anstatt Dinge in der GUI zu wählen; z. B. , write in: name->queryInput text:"test search"
, click: name->searchButton
). Laravel und Selenium sind in der Lage, Webseiten zu besuchen, Formulare einzureichen und die Ergebnisse zu überprüfen. Sie können Tests sowohl in Laravel als auch in Selen automatisieren, indem Sie den Befehl PHPUnit zu cron hinzufügen.Warum Selen mit Laravel zum Testen verwenden?
Also Warum sollte ich Selen zum Testen in Laravel verwenden?
Das einzige, was mir einfällt, ist, dass Selenium Ihnen erlaubt, einen Browser zu wählen, in dem die Seiten geöffnet werden. Wenn Ihr Test nur mit Laravel-Tests besteht, kann es bei einigen Browsern fehlschlagen, wie zum Beispiel beim Internet Explorer.
In this Laracast sagt der Autor um 1:00:
Ein Problem mit diesem [Test in Laravel] ist, es enthält keine Hilfe von JavaScript. Stattdessen täuschen wir die Anfrage vor, wir bekommen die Antwort, wir untersuchen sie, aber keine Browser- oder JavaScript-Engine ist an diesem Prozess beteiligt.
Aber was sind die Nachteile der Vortäuschung der Anfragen? Wie würde Selenium helfen? Ein Beispiel wäre perfekt.
Danke für die Antwort. Es lohnt sich also, alle Selenium-Komponenten zu installieren, da es dann, wie Sie sagten, das reale Szenario * imitiert. Aber dann scheint es, dass du immer Selen verwenden solltest, denn das ist dein Ziel. Ich habe die Laracast und die gleichen Tests in Selen geschrieben und wäre dann mehr * aus der realen Welt *. Könnten Sie also ein Beispiel geben, bei dem der Browser überhaupt keine Rolle spielt, weshalb ich genau weiß, wann Laravels integriertes Testen und wann Selenium zu verwenden ist? Ich weiß, das erweitert meine Frage, aber es wäre schön, ein vollständiges Bild zu haben. – user1
Nun, ich habe etwas sehr Wichtiges nicht erwähnt. Selenium-Tests haben einen Nachteil, sie sind viel langsamer, wegen der Integration mit Browsern, und sie sind abhängig von einer konkreten Browser-Instanz als Abhängigkeit. In meinem speziellen Fall verwende ich hauptsächlich Laravel-integrierte Tests und Selenium nur für solche Tests, bei denen ich ein bestimmtes Szenario überprüfen muss (zum Beispiel JS oder Seiten-Rendering in einem bestimmten Browser aus einem ganz bestimmten Grund). – alariva
@mr_jigsaw Id sagen, dass der Browser überhaupt keine Rolle spielt, solange Sie sich primär auf die Anwendungslogik konzentrieren (mehr von -say- Backend) Und es ist sinnvoll, Selenium zu verwenden, wenn Sie sich etwas mehr auf UI/UX konzentrieren browserspezifische Funktionen, bei denen es sich nur um wenige Anwendungsszenarios handeln könnte, die Sie testen möchten (mehr von -Say-Frontend) – alariva