Skip to content

Instantly share code, notes, and snippets.

@AlexVanderbist
Created April 6, 2017 09:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexVanderbist/326c2146a7becc1b3f0dcf9e8047d8e8 to your computer and use it in GitHub Desktop.
Save AlexVanderbist/326c2146a7becc1b3f0dcf9e8047d8e8 to your computer and use it in GitHub Desktop.
Blog dag #47

Vandaag staan browser tests op het programma met Laravel Dusk. Het leuke aan deze stageplek is dat iedereen even hyped is over nieuwe ontwikkelingen in verband met web development. Zo kwam Taylor Otwell onlangs op de proppen met Laravel Dusk, een slimme combinatie van een aantal opensource pakketen zoals phpunit en php-webdriver van Facebook. Dit laat ons toe heel gemakkelijk tests te schrijven die de features echt testen in de browser, in dit geval chrome.

Voor mijn stagebedrijf is een veel voorkomend probleem dat mensen hun wachtwoord niet kunnen resetten binnen in het CMS. Op de een of andere manier is er altijd wel een feature binnen ieder project die altijd voor problemen zorgt. In dit geval omdat Laravel zelf vaak wijzigingen doorvoert aan de password reset functionaliteit en omdat ze hier veel van die functionaliteit zelf hebben overschreven. Om to the point te komen: dit is een ideaal geval voor browser tests.

Om heel de reset flow te testen hebben we eerst nog wel een aantal dingen nodig. Om te beginnen Laravel Dusk en ten tweede een e-mail preview driver. Aangezien we Dusk niet door gmail kunnen laten zoeken moeten we de password reset mail dus op een andere manier kunnen openen en testen. Gelukkig bestaat er een hele goede e-mail preview driver. Wanneer een mail vanuit Laravel verzonden wordt verschijnt er op de webpagina in realtime een pop-up met een link naar de preview van de mail. Zo kunnen we Dusk aansturen om daarop te klikken en zo de mail te bekijken en nieuw wachtwoord aan te vragen.

Na de middag begin ik aan Travis integratie. Travis CI is een platform voor continuous integration. Dit wil zeggen dat bij iedere push or PR op GitHub dat Travis aan het werk gaat om de tests die bij dat project horen uit te voeren. Voor command line tests spreekt dit voor zich aangezien Travis zelf een command line only is. Dusk daarentegen heeft een eigenlijke user interface nodig. Na veel prutsen met configuratie instellingen is het uiteindelijk toch gelukt om alle tests, inclusief Dusk, groen te krijgen! 🎉

published: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment