Internetbureau Holder

Testen in de browser

Jeroen Bulters vr 22 jan 10

Het testen van Rails applicaties lijkt wel mogelijk op een haast oneindig aantal manieren. Voor ieders voorkeur is er wel een test framework met bijbehorende voor en nadelen.

Cucumber is momenteel een van de meest populaire test frameworks, vooral omdat een klant deze ook kan lezen en begrijpen. Echter wordt het testen met Cucumber lastiger als de applicatie gebruik maakt van ajax requests. Cucumber gebruikt webrat, en webrat is niet meer dan een luxe screenscraper (excuses voor de oneerbiedigheid) met een paar leuke extra’s. Gelukkig zijn hier ook al ruime tijd oplossingen voor, onder andere in de vorm van selenium.

Het nadeel hiervan is echter dat er altijd extra daemons, libraries en plug-ins nodig zijn. Daarom: watir. Watir is een simpele gem die de interactie met een browser voor je regelt. Persoonlijk gebruik ik de safariwatir variant in verband met mijn voorkeursbrowser.

Het gebruik van watir is eenvoudig:

 require 'watir'
 browser = Watir::Browser.new
 browser.goto("http://127.0.0.1:3000")

Vervolgens kan je gebruik maken van een groot scala aan functies om met de ingeladen site te ‘spelen’.

 browser.text_field(:name, "username").set "jeroen"
 browser.text_field(:name, "password").set "1a2b3c"
 browser.button(:name, "aanmelden").click

Et voila, testen, direct in de browser is mogelijk. Het uitlezen van text in de diverse elementen is eenvoudig. Er blijft echter een probleempje. Niet alle browsers vuren javascript events af als er via een interface met hun gesproken wordt. Om dit op te lossen dien je dus de events met de hand af te scieten. Gelukkig is een wrapper functie zo geschreven en watir maakt het genereren van javascript events eenvoudig:

 browser.text_field(:name, "username").fire_event('onkeypress')

Vervolgens even wachten totdat een div geupdate is:

 
 wait_until { browser.div(:id, 'username_available').visible? }

Uiteraard is het mogelijk om watir te gebruiken in combinatie met cucumber. Een eenvoudige uitleg is hier te vinden.

Gepost in hor |  0 reacties

Plaats je reactie





Welcome to Holland On Rails

This weblog is the official Ruby techblog from the guys at Holder, a Ruby development company. Holder is also the company behind the RubyAndRails Europe Conference in Amsterdam.

Recente Jobs


Bekijk alle jobs »»

Gereedschapskist

Onmisbare tools voor
iedere developer!
Ruby On Rails
Framework voor de web 2.0 developer. Eindelijk vooruitgang!
TextMate
Editor for true pro's
Typ, tab, top :-)
Nee, niet voor Win.
Made On A Mac
En nou is het over met die saaie grijze Windows bak van je!

Auteurs op deze site

Chris Obdam

'Less is more' evangelist, past dit ook dagelijks toe op zijn tandenborstel.

Chiel Wester

Snelheidswonder op Ruby wielen. Leuk om mee te pair-programmen ;-) Recommend Me

Stephan Kaag

Het eerste Rails coreteam- member uit Nederland? Rails evangelist van het eerste uur.

Paul Engel

Én Rails programmeren én interfaces designen? Je zou hem superman kunnen noemen..

Dax Huiberts

Official Zip-Programmer, skinny code is helemaal zijn ding. Haalt meer code weg dan dat er bij komt.

Freek Monteban

Het nieuwste telg uit het Holland on Rails nest! Hij doet niets anders meer!

Johan Vermeulen

De stylesheet-koning uit de kop van Noord-Holland!