Göm menyn

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