allgemein
objekt-orientierter entwurf
programmierung
qualitätssicherung / testen

Programiersprache  Java 
Schwierigkeitsgrad  einfach 
Eingereicht von  Sascha Frick 
Veröffentlicht am  29.12.2005  
Lösung veröffentlicht am   09.01.2006  

Der bugTeaser

public class Charges {

  private static final float BASE_PRICE = 5.0F;
  private static final float PRIORITY   = 2.5F;

  ...

  public Money getShippingCharges(boolean priorityShipping) { 
    Money result = new Money(BASE_PRICE);
    if (priorityShipping) result.add(new Money(PRIORITY));
    return result;
  }
  
}

Anmerkungen

Das Codefragment stammt aus einer Shop-Anwendung. Geldbeträge werden in der ganzen Anwendung mit immutable Instanzen der Klasse Money repräsentiert. Die Methode Charges.getShippingCharges() berechnet die anfallenden Versandkosten für eine Bestellung. Leider stimmt das Ergebnis nicht in jedem Fall - warum?

Über diesen bugTeaser diskutieren.



bugTeaser #006: Selbstbetrug

Druckbare Version