Nyheder og Jobs

JUnit Kung Fu: Getting More Out of Your Unit Tests

En god session omkring optimering af ens unit test.

Navngivning

Brugte de første 15+ minutter til at tale om navngivning af test, noget der lå taleren meget på sinde – men pointen var, at med den rette navngivning ville ens test fremstå mere overskuelige og læsbare for f.eks. nye udviklere der skal sættes ind i koden.

Understregede vigtigheden af at testen udtrykker den forventede opførsel snarere end den implementering der er lavet.

Dernæst blev der gennemgået forskellige værktøjer til at forbedre tests:

Hamcrest

Giver mulighed for at lave mere læsbare og “kraftige” assertions så man f.eks. skriver

assertThat(xxx, is(yy));

Dette skulle gøre de enkelte tests mere læsbare.

Der er forskellige matchers til rådighed og de kan bundles, så hvis man har en test der ender i multiple asserts kan man bruge allOff(x, y,z), og dette vil så evaluere alle de angivne matchers og hvis een eller flere fejler, producere et samlet resultat af testen (i modsætning til en traditionel liste af asserts der vil stoppe efter den første fejler).

Parameterized data – mulighed for at parameterisere testen så een test kan dække en lang række af input+forventet output kombinationer

Rules – f.eks. til at udtrykke en timeout så alle tests forventes at afsluttes indenfor 1 sekund.

Categories – til gruppering af testcases

Mockito – et letvægts mock-framework (men her var vi så gået over tiden desværre)…