Oppgaven utvider Tilstand og oppførsel - Location-oppgave med minimum- og maksimum-verdier for x og y og legger til valideringsmetoder.

Vi tar utgangspunkt i Tilstand og oppførsel - Location-oppgave og legger til attributter for minimum- og maksimum-verdier for x og y, som følger:

  • minX, minX - minste lovlige x- og y-verdier
  • maxX, maxY - største lovlige x- og y-verdier

En kan tenke på disse som hjørnene i et rektangel, og at punktet som Location-objektet representerer må være inni dette rektanglet.

JExercise-testkode for oppgaven finner du her: stateandbehavior/ConstrainedLocationTest.java. Testen krever metoden boolean isValidCoordinates(int x, int y) og konstruktørene ConstrainedLocation() og ConstrainedLocation(int startX, int startY, int minX, int minY, int maxX, int maxY)


JExercise lar deg sjekke din egen kode vha. forhåndslagde JUnit-tester og JExercise-panelet

Bruk av JExercise:

  1. Sørg for at jexercise-standalone.jar er lagt til i ditt prosjekts Build Path. Dette må gjøres hver gang du oppretter et nytt prosjekt, og det er derfor lurt å gjenbruke samme prosjekt til alle oppgaver.
  2. JExercise-tillegget må være installert. Installer tillegget fra følgende oppdateringsadresse: http://folk.ntnu.no/hal/dev/updatesite.
  3. Åpne JExercise-panelet via Window -> Show View -> Other, og navigere deg fram til JExercise i vinduet som kommer opp, velge det og klikke OK.
  4. Klikke og dra oppgavens testklasse, <oppgavenavn>Test.java fra pakkeoversikten og slippe den i JExercise panelet. 
  5. Testene kan så kjøres ved å dobbeltklikke på testen som ønskes kjørt.

Ved trøbbel, se først om du finner løsningen i Løsninger på trøbbel med JExercise.

Unknown macro: {html}

Twitre gjerne om oppgaven når du er ferdig: <a href="https://twitter.com/share" class="twitter-share-button" data-hashtags="jexercise">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>

  • No labels