Testrutiner för almanackan
Vad innehåller filen med testrutiner?
I filen test-driver.cl
finns ett testramverk för almanackan, framför allt för funktionen
lediga-tidsperioder som ska definieras i uppgift 4D.
Filen inleds med några funktioner som är tänkta att underlätta skapandet
av testfall. Om vi ska kunna hitta på många olika dagalmanackor för att
täcka alla möjliga fall vill vi gärna kunna specificera dessa på ett enkelt
sätt och slippa skriva (skapa-dagalmanacka ...) många gånger.
Funktionen omvandla-tidsperioder tar en lista med strängar
som t.ex. kan se ut så här: ("10:15-12:00" "13:15-15:00").
Denna omvandlas till ett tidsperioder-objekt som innehåller de två
tidsperioderna så som almanackan vill ha dem. Med hjälp av funktionen
tidsperioder->dagalmanacka kan vi sedan skapa ett
dagalmanacka-objekt där vi i princip har bokat möten som motsvarar
tidsperioderna.
Sist i filen finns ett exempel på hur man kan bygga upp testfall. Varje testfall består av sex olika delar:
#'lediga-tidsperioder Funktionen som vi ska testa
"08:00" Start av intervall
"21:00" Slut av intervall
'("07:00-09:00" "13:00-18:00") Dagens möten
'("09:00-13:00" "18:00-21:00") Förväntade lediga tider under dagen
#'samma-tidsperioder Funktion för att testa resultatet
Vi anger vilken funktion vi ska testa, och i uppgift 4D är det ju
lediga-tidsperioder som vi verkligen vill kolla att vi gjort
rätt. Sedan följer indata till funktionen, dvs intervallet som vi vill kolla
samt mötena som vi tänker oss finns under dagen. Därefter följer vad vi
hoppas ska komma ut ur funktionen, samt namnet på den funktion som vi ska
använda för att jämföra faktiskt resultat med önskat resultat. Här kanske
vi skulle kunna komma undan med equal men det är bättre att
ha en specifik funktion anpassad till just vår datastruktur.
Vad ska man göra i uppgift 4D?
Förutom att faktiskt definiera de funktioner som behövs för att kolla
lediga tider under en dag ska man se till att testa dem ordentligt. Detta
ska göras genom att man använder testramverket i filen
test-driver.cl. Du ska alltså tänka ut ett antal olika
testfall som täcker upp alla möjliga fall som kan inträffa av bokade
och obokade tider inom olika intervall. Dessa ska läggas till i listan
med testfall.
Det är inte nödvändigt att sätta sig in i testrutinerna, utan det går utmärkt att bara skriva testfall och testa dessa. Dock, om du har löst uppgift 4D på ett annat sätt än vad uppgiften specificerar kan det bli nödvändigt att modifiera testrutinerna så att de passar ihop med din kod.
Det som ska redovisas är, förutom koden som kollar lediga tider, alla de testfall som du hittat på, eventuella ändringar i testrutinerna, samt resultatet av att köra dina tester.
Hur testar man?
Skapa gärna en egen fil med testfall, så att det går lättare att
redovisa vad du har gjort. Hitta på testfall på samma sätt som i
funktionen skapa-testfallen. Anropa sedan denna funktion,
så att testfallen sparas. Därefter anropar du (testa-lediga)
för att faktiskt genomföra testet. Om allt går bra bör du få ett kort
och koncist resultat som säger att allt är okej.
Sidansvarig: Peter Dalenius
Senast uppdaterad: 2009-10-07
