Enums 相同的枚举在JUnit测试中共享

Enums 相同的枚举在JUnit测试中共享,enums,junit4,Enums,Junit4,我有一个如下所示的枚举: public enum MyEnum { FIRST(new FirstOperations()), SECOND(new SecondOperations()) ... 我的问题是,如果我有两个不同的单元测试类,并且都声明MyEnum My=MyEnum.FIRST那么FirstOperations类将仅由运行的第一个单元测试实例化。第二个测试用例将恢复它 为什么JUnit会保留堆中的这些枚举?第一个测试用例完成后,它们不应

我有一个如下所示的枚举:

    public enum MyEnum {

        FIRST(new FirstOperations()),
        SECOND(new SecondOperations())
...
我的问题是,如果我有两个不同的单元测试类,并且都声明
MyEnum My=MyEnum.FIRST
那么
FirstOperations
类将仅由运行的第一个单元测试实例化。第二个测试用例将恢复它


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

枚举是单粒子的完美例子(例如,请参阅)。这就是为什么它们只被实例化一次——除非在每个测试中都使用JVM


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

顺便说一句,我正在使用JUnit4.11和Java7