Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Nedenfor vises oppførselen til en alternativ count-metode, hvor argumentet angir hvor langt det skal telles. Siden vi her har en forgreining, må vi teste ulike sekvenser for seg, ved å rigge opp start-tilstanden på nytt. Dette illustrerer også problemet med å teste metoder som tar argumenter: En må jo egentlig prøve alle mulige verdier for å sjekke at oppførsel er riktig for dem alle. Men det blir jo, og dette er i praksis umulig.

PlantUML Macro
object "Counter" as counter1 {
	counter = 1
	end = 3
}
 
object "Counter" as counter2 {
	counter = 2
	end = 3
}
counter1 --> counter2 : count(1)
 
object "Counter" as counter3 {
	counter = 3
	end = 3
}
counter2 --> counter3 : count(1)
counter1 --> counter3 : count(2)
counter2 --> counter3 : count(2) 

Oppførselen til count(int)

Code Block
Counter counter = new Counter(1, 3);
counter.count(1);
if (getCounter() != 2) {
	throw new IllegalStateException("Expected that counter was 2, but actually it was " + getCounter());
}
counter.count(1);
if (getCounter() != 3) {
	throw new IllegalStateException("Expected that counter was 3, but actually it was " + getCounter());
}
counter.count(1);
if (getCounter() != 3) {
	throw new IllegalStateException("Expected that counter was 3, but actually it was " + getCounter());
}
// test other path
counter = new Counter(1, 3);
counter.count(2);
if (getCounter() != 3) {
	throw new IllegalStateException("Expected that counter was 3, but actually it was " + getCounter());
}
counter.count(2);
if (getCounter() != 3) {
	throw new IllegalStateException("Expected that counter was 3, but actually it was " + getCounter());
}
// test yet another path
counter = new Counter(2, 3);
counter.count(2);
if (getCounter() != 3) {
	throw new IllegalStateException("Expected that counter was 3, but actually it was " + getCounter());
}

I kommentaren til