klienttester

17 views
Skip to first unread message

Cristian Libardo

unread,
Jan 23, 2013, 5:58:51 AM1/23/13
to sweden-progressive-dot-net
Hej!

Vad använder folk för testning på klientsidan nuförtiden? Jag tänkte mig att testning av användarscenarion i en angularapp med en del asynkrona beteenden med selenium kunde vara en bra idé.

/Cristian

Daniel Lidström

unread,
Jan 23, 2013, 6:09:29 AM1/23/13
to sweden-progre...@googlegroups.com
Teamet bakom AngularJS använder själva jasmine. Jag kan också rekommendera det. Men egentligen har det ingen större betydelse exakt vilket ramverk du använder. Vill ni mocka asynkrona anrop så kan man göra sånt med spies i sinon.js (http://sinonjs.org/).

/Daniel
--
Daniel

Cristian Libardo

unread,
Jan 23, 2013, 6:18:31 AM1/23/13
to sweden-progre...@googlegroups.com
Det låter som du förespråkar rena unittester. Jag är lite rädd att det kommer leda till att jag stubbar och fejkar ihjäl mig om jag går den här vägen. Är det någon annan som har en åsikt i frågan?

/Cristian

2013/1/23 Daniel Lidström <dlid...@gmail.com>

Daniel Vinntreus

unread,
Jan 23, 2013, 6:59:08 AM1/23/13
to sweden-progre...@googlegroups.com
Använde selenium en del för ca 1-2 år sen och det fungerar helt okej i enkla scenarion. I detta fall var det windows inloggning med i leken vilket gjorde det ganska besvärligt, vi hade ett gäng tester mot ajax-implementationer och dessa blev lite lurigare att skriva men det gick ändå. Kräver en del mer tid än ex. enhetstester då det är lättare att skriva bräkligare tester. När vi väl började få ett par tester (50+) så lade vi märke till att de tar en jäkla tid. Och med jämna mellanrum kunde det vara tester som failade av fel anledning.

Den erfarenheten gjorde att jag provade enhetstester med jasmine (ihop med phantomjs på byggserver) och sedan gjorde en egen liten wrapper kring HttpWebRequest (https://github.com/vinntreus/HttpGhost) som integrationstestar 'backend'. Jag trivs bättre med den setupen än med selenium iaf.

/Daniel


2013/1/23 Cristian Libardo <cristian...@gmail.com>

Johan Öbrink

unread,
Jan 23, 2013, 8:10:03 AM1/23/13
to sweden-progre...@googlegroups.com
Jag föredrar mocha (plus chai för assertions) just för att det har bra stöd för asynkrona tester. Jasmine har inget vettigt stöd överhuvudtaget och vows kändes snabbt för komplicerat och överarbetat.

/Johan

Daniel Vinntreus

unread,
Jan 23, 2013, 9:10:44 AM1/23/13
to sweden-progre...@googlegroups.com
Håller med om att async-tester är bättre (trevligare syntax och lättare att förstå) med mocha. Glömde nämna att ska man använda jasmine för asynk tester så lär man använda jasmine.async - https://github.com/derickbailey/jasmine.async 

Är ju som sagt ett tag sedan jag använde selenium. Kanske hänt en massa som gjort det bättre?

/Daniel


2013/1/23 Johan Öbrink <johan....@24hr.se>

Johan Öbrink

unread,
Jan 23, 2013, 9:27:47 AM1/23/13
to sweden-progre...@googlegroups.com
Men då måste jag ändå nyfiket fråga: Vad är det som Jasmine har men som mocha saknar och som gör att man använder ett tilläggsbibliotek och en stökigare syntax istf att bara byta testramverk?

/Johan

Cristian Libardo

unread,
Jan 23, 2013, 11:52:53 AM1/23/13
to sweden-progre...@googlegroups.com
Tack för alla bra förslag. Jag börjar svänga mot tester av angular-controllers.

Är det någon som har erfarenheter från http://jstest.codeplex.com/? Drömmen vore att få igång tester utan browser och mot en self-hostad web-api instans med minneslagring.

/Cristian

2013/1/23 Johan Öbrink <johan....@24hr.se>

Johan Öbrink

unread,
Jan 23, 2013, 12:06:15 PM1/23/13
to sweden-progre...@googlegroups.com
Har inte testat (heh) jstest. Däremot kan du ju alltid köra typ watin mot sajten och låta mocha använda tex en json-reporter. 

Btw så vill även jag slå ett slag för Sinon oavsett vilket ramverk du väljer. 

/Johan

Daniel Vinntreus

unread,
Jan 23, 2013, 12:18:58 PM1/23/13
to sweden-progre...@googlegroups.com
Bra fråga! Jag har inte använt mocha+chai tillräckligt för att svara dig, utan enbart labbat lite med det. För min del har jag inte upplevt något större problem med jasmine i den setup'en som gett mig anledning till att lägga tid på att byta js-testramverk. Jag tycker jag det inte spelar särskilt stor roll vilken man väljer, så länge man trivs med det. Kommer säkerligen kolla in mer på mocha vid lämpligt tillfälle.

Däremot är det skillnad på typen av test du gör med selenium kontra js-enhetstest + backend-integrationstest. Är det några smoke-test på ett par flöden (dvs ett gäng interaktioner) är det kanske smidigare att sätta upp med selenium, är det dessutom krav på en specifik webbläsare så kanske det också funkar smidigast med selenium iom att det öppnar just den läsaren och kör testerna medans med enhetstest-stuket lär man väl använda en head-less browser på byggservern. Kanske tom, så att man behöver använda båda teknikerna. 

Mitt tips är iaf att försöka använda så få heltäckande selenium-test som möjligt och mer fokusera på enheterna.

/Daniel
Reply all
Reply to author
Forward
0 new messages