在JUnit测试中共享相同的Enum

时间:2013-02-19 12:41:31

标签: enums junit4

我有一个类似以下的枚举:

    public enum MyEnum {

        FIRST(new FirstOperations()),
        SECOND(new SecondOperations())
...

我的问题是,如果我有2个不同的单元测试类并且都声明MyEnum my = MyEnum.FIRST;,则FirstOperations类将仅通过运行的第一个单元测试进行实例化。第二个测试用例将重新开始。

为什么JUnit会在堆中保留这些枚举?一旦第一个测试用例完成,它们不应该被垃圾收集吗?

1 个答案:

答案 0 :(得分:0)

枚举是Singeltons的完美示例(例如,见here)。这就是为什么它们只被实例化一次 - 除非你在每次测试中分叉JVM。

不要依赖垃圾收集器。你永远不知道它何时运行。