2013-02-19 34 views
0

我有类似如下的枚举:同样枚举被翻过的JUnit共享测试

,如果我有2个不同的单元测试类和两个声明 MyEnum my = MyEnum.FIRST;那么 FirstOperations类只会被实例化
public enum MyEnum { 

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

我的问题是通过首先运行的单元测试。第二个测试用例会重新启动它。

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

+0

顺便说一下,我使用JUnit 4.11和Java 7 – DarVar 2013-02-19 12:44:09

回答

0

枚举是Singeltons的完美例子(例如见here)。这就是为什么他们只能实例化一次 - 除非您在每个测试中分配JVM。

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

+0

为每个测试工作分叉。谢谢。 – DarVar 2013-02-28 09:29:00