TDD方法如下

时间:2013-03-20 13:55:04

标签: java tdd

您可以为下面的枚举类编写多少个测试。我正在寻找以下的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;
    }

}

1 个答案:

答案 0 :(得分:2)

我认为对这个枚举有意义的唯一测试是创建每个值的实例并检查getPrice()方法是否返回预期的价格。

关于你使用enum做的算术:这是一个不同的问题,如果没有看到你做这个和你的要求的实际来源,就无法回答。设计单元测试时通常的思考过程是:

  • 根据我的规格,什么是正常使用情况?
  • 可能难以处理或需要特殊逻辑(例如最小或最大允许值)的罕见边缘情况是什么?
  • 规范之外的哪些用例会导致错误?
  • 是否测试了所有可能的代码路径?

顺便说一下:你不应该用double来表示货币价值。您应该使用BigDecimal,因为它允许您指定小数位数和舍入策略。正常的双重算术不遵循金融交易中惯常的舍入规则。有关详细信息,请参阅this question