Versions Compared

Key

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

...

PlantUML Macro
object "Counter" as counter1 {
	counter = 1
	end = 3
}

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

Oppførsel til count() og getCounter()

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)

Oppførsel til count() og count(int)

Slike tilstandsdiagrammer er relativt rett frem å oversette til testkode: En rigger først opp objektene i start-tilstanden, ved å opprette objektene og sette attributtene. Så utføres kallet på en av transisjonene før en sjekker at tilstanden etterpå er slik diagrammet krever. Dersom tilstanden er feil så rapporteres dette, ellers så fortsetter en med denne tilstanden som utgangspunkt for videre testing. Følgende kode tester første og andre tilstand i diagrammet til venstre.

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