...
Den utdelte Person-klassen inneholder to logiske feil, i tillegg til at det noen plasser mangler ordentlig innkapsling. Du skal lage klassen PersonTest som inneholder JUnit-testkode som tester den funksjonaliteten du mener er nødvendig å teste i den utdelte Person-klassen. Deretter skal du med utgangspunkt i enhetstestene dine lokalisere og begrunne feilene i Person-klassen. Det kan være lurt å bruke debuggeren i Eclipse for å følge med på hvordan koden oppfører seg under kjøring. Include Page
- getName() - returnerer navnet knyttet til dette Person-objektet
- getGender() - returnerer tegnet som representerer kjønnet, enten 'F' eller 'M'
- getMother() - returnerer Person-objektet som er moren, evt. null
- getFather() - returnerer Person-objektet som er faren, evt. null
- getChildCount() - returnerer antall barn dette Person-objektet har
- getChild(int n) - returnerer barn nr. n (altså et Person-objekt), evt. utløser (et passende) unntak om n er for stor (eller liten)
Person-klassen har to sett med endringsmetoder, knyttet til de to rollene i hver ende av children-mother/father-assosiasjonen.
Fra children-perspektivet har vi følgende to metoder:
- addChild(Person) - oppretter en kobling til et barn (et annet Person-objekt). Dersom Person-objektet som metoden kalles på, er en kvinne, så skal denne bli barnets mor, og motsatt, dersom Person-objektet som metoden kalles på, er en mann, så skal denne bli barnets far.
- removeChild(Person) - fjerner en kobling til et barn (et annet Person-objekt). Dersom Person-objektet som metoden kalles på, er moren til argumentet, så skal mother-koblingen fjernes, og motsatt, dersom Person-objektet som metoden kalles på, er argumentets far, så skal father-koblingen fjernes.
Fra mother/father-perspektivet har vi følgende to metoder:
- setMother(Person) - setter argumentet (en kvinne) som moren til Person-objektet som metoden kalles på. Argumentet får samtidig registrert Person-objektet som metoden kalles på, som sitt barn.
- setFather(Person) - setter argumentet (en mann) som faren til Person-objektet som metoden kalles på. Argumentet får samtidig registrert Person-objektet som metoden kalles på, som sitt barn.