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