-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,因为它允许您指定小数位数和舍入策略。正常的双重算术不遵循金融交易中惯用的四舍五入规则。有关详细信息,请参阅此问题

于 2013-03-20T14:06:08.637 回答