-2

以下の列挙型クラスに対していくつのテストを記述できますか。以下のO/Pを探しています。

次のコマンドが与えられた

java fileName HORIZON_BOX, HORIZON_BOX_WITH_CC,HORIZON_BOX_WITH_CC

1 HORIZON_BOX: 20.00
2 HORIZON_BOX_WITH_CC @ 30.00 : 60.00
GRAND TOTAL : 80.00

この問題を解決するための最善の解決策は何ですか?

public enum Product {

    HORIZON_BOX(30.00),
    HORIZON_BOX_WITH_CC(50.00),
    HORIZON_BOX_WITH_CC_2_TB(100.00),
    HORIZON_MULTIROOM(75.00),
    HUB(20.00);

    private double price;

    private Product(double price) {
        this.price = price;
    }

    public double getPrice() {
        return price;
    }

}
4

1 に答える 1

2

この列挙型に対して意味のある唯一のテストは、各値のインスタンスを作成し、getPrice() メソッドが予想される価格を返すかどうかを確認することだと思います。

列挙型で行う算術演算については、それを行うための実際のソースと要件を確認しないと答えられない別の質問です。単体テストを設計するときの通常の思考プロセスは次のとおりです。

  • 私の仕様によると、通常のユースケースは何ですか?
  • 処理が難しい、または特別なロジック (許容される最小値または最大値など) が必要なまれなエッジ ケースは何ですか?
  • エラーになるはずの仕様外のユースケースは何ですか?
  • 考えられるコード パスはすべてテストされていますか?

ところで: 金額を表すために double を使用しないでください。小数点以下の桁数と丸め方法を指定できるため、BigDecimalを使用する必要があります。通常の double 演算は、金融取引で慣習的な丸め規則に従いません。詳細については、この質問を参照してください。

于 2013-03-20T14:06:08.637 に答える