Skip to content

LemurP/tddPricingKata

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kata: Kassesystem

Jobb i par når dere løser denne.

Du skal bygge et enkelt kassesystem som kan scanne varer. En vare har et navn, en pris. I tillegg kan varen har en rabatt, der du oppgir et antall du må kjøpe for at rabatten skal slå inn, og en rabatt i prosent. Varer skal kunne scannes, og scanne-metoden returnerer hvor mye du har handlet for (sum). Hvis dere får tid kan dere også lage en kvitteringsfunksjon som skriver ut alle varene på hver sin linje (samle flere varer av samme type på samme linje sammen med evt rabatt), samt en linje til slutt som viser totalsummen.

Dere skal løse denne ved hjelp av test-drevet utvikling. Testen skal skrives før implementasjonskoden! Bruk gjerne litt tid på å tenke gjennom teknisk design (klasser og funksjoner), samt i hvilken rekkefølge dere skal implementere testene. Prøv å implementere slik at dere legger på litt og litt funksjonalitet for hver test. Begynn med det enkleste dere kan se for dere.

Spesifikasjon

Kassesystemet (en eller flere klasser) skal kunne gjøre følgende:

  • Registrere en eller flere varer gitt ved navn og pris på en enhet
  • Registrere en eller flere varer med rabatt, gitt ved navn, pris, antall enheter som må kjøpes for at rabatten skal slå inn, samt rabatt i prosent
  • Koble sammen kasse med vareliste
  • Registrere en vare og gi rett pris for denne
  • Ignorere ukjente varer
  • Registrere en vare som utløser rabatt
  • Skrive ut en kvittering for varene. En linje pr vare, kostnad for varen, antall kjøpt, og en separat linje til slutt med totalsum.

Løse kataen

Bruk god tid på å diskutere hvilken rekkefølge dere skal løse de ulike kravene i, slik at dere kan få en god progresjon og implementere litt og litt etterhvert som dere legger til tester. Noter ned hvilken rekkefølge dere ønsker å implementere kravene i, og hvorfor dere velger denne rekkefølgen.

Dere får ikke lov å skrive noe produksjonskode før dere har en test. Skriv koden i testen, og når du får en kompileringsfeil på grunn av manglende klasser eller metoder, lag rammeverket som trengs men la selve løsningen være til testen har feilet. Dette gjør at dere vil bytte mellom test- og implementasjonsklasse ofte.

Når dere har fungerende tester og kode kan dere refaktorere om det er nødvendig.

Dersom vi får tid går vi gjennom løsningene til de ulike gruppene for å se hvilke løsninger dere har valgt.

Bakgrunn

Denne kataen er løst basert på denne.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 82.0%
  • Java 18.0%