枚举测试junit arraylist被覆盖重新复制不工作

时间:2016-08-25 05:31:55

标签: java arraylist

我有一篇描述课程结构的文章 enum static variable reference between java但是当我开始测试时,我遇到了一个微不足道的错误,我创建了ArrayList但是调试语句告诉我类对象是创建的新列表项或构造函数的默认值。

@Test
public GoodsTest()        
    clearProductMaps();
    Goods item = new Goods();
    calendar.set(Calendar.MONTH, Calendar.JULY);
    calendar.set(Calendar.DAY_OF_MONTH, 21);
    calendar.set(Calendar.YEAR, 2016);
    date = calendar.getTime();
    item.setName("FirstItem_A");
    item.setPrice(4.10);
    item.setStatus(Library.STATUSES.US);
    item.setDate(date);

    actualGoods.add(0,item);
    item = new Goods();
    item.setProductName("FirstItem_A");
    item.setPrice(3.70);
    item.setStatus(Library.STATUSES.ME);
    calendar.set(Calendar.MONTH, Calendar.AUGUST);
    date = calendar.getTime();
    item.setDate(date);

    actualGoods.add(item);
    System.out.println("debug " + actualGoods.get(0).getStatus());
}

我的clearProductMaps只是要求List为空以进行测试。

print语句是:debug ME 当我被期望的声明是:debug US

1 个答案:

答案 0 :(得分:1)

显然setStatus两个Good的{​​{1}}似乎写入同一个字段。所以这个字段是static。静态字段是类对象Good的字段。

当你谈到枚举时,每个枚举常量也是一个静态的全局单例。

enum Status {
    SLEEPY,
    ENERGETIC;

    public int coffee;
}

现在两个对象各有一个coffee。分配它对所有SLEEPY或ENERGETIC事件都有效。这种混淆似乎与Library.STATUSES.ME/US。

有关