Jetzt lese ich Kent Becks "Test Driven Development" und ich habe ein Problem mit dem Verständnis von "Privacy" Kapitel. Ich benutze JUnit 4 und hier ist der Code aus dem Kapitel.Sollte der Code aus dem Buch funktionieren?
Die Klasse wir prüfen:
public class Dollar {
private int amount;
Dollar(int amount) {
this.amount = amount;
}
public Dollar times(int multiplier) {
return new Dollar(amount * multiplier);
}
public boolean equals(Dollar d) {
return amount == d.amount;
}
}
Der Test (vollständig aus dem Buch kopiert):
public void testMultiplication() {
Dollar five= new Dollar(5);
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
}
ein Kapitel lesen Ich verstehe, dass dieser Test sollte funktionieren. Aber es kann nicht funktionieren, weil times
Methode immer neues Objekt zurückgibt, so assertEquals
s wird immer fehlschlagen.
Meine Frage ist: sollte dieser Test funktionieren? Oder ist es nur als ein Beispiel gegeben, es in eine andere Programmiersprache zu übersetzen?
Diese Art von Fehler ist genau der Grund, warum die Annotation ['@ Override'] (https://docs.oracle.com/javase/8/docs/api/java/lang/Override.html) erstellt wurde. – Bohemian