0

我有一个如下的枚举:

    public enum MyEnum {

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

我的问题是,如果我有 2 个不同的单元测试类并且都声明MyEnum my = MyEnum.FIRST;,那么FirstOperations该类将仅由运行的第一个单元测试实例化。第二个测试用例将继续它。

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

4

1 回答 1

0

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

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

于 2013-02-25T20:36:13.227 回答