我目前在我的一个相当大的项目中遇到一些单元测试的内存问题。在我今天拉头发和研究的过程中,我开始意识到这似乎与清理物体的速度并不总是像我认为应该清理的那样快有关。我开始研究“cleanup mockito”和“cleanup junit”,并遇到了一些关于如何使用@Before
和@After
(以及它们的 *Class 版本)做你不想在每个单元上完成的激烈事情的博客和论坛帖子测试。这让我想到了 Mockito@Mock
和@InjectMocks
注释。
有人可以详细描述一下在maven构建期间如何在内存中处理下面的类变量吗?对象是在单元测试之前、期间还是之后创建的?最后一次单元测试完成后,对象是否立即销毁?我应该使用@After
将所有类变量设置为空吗?
多次感谢。这是我可能使用的测试用例示例:
@RunWith(MockitoJUnitRunner.class)
public class thisCustomTest {
@Mock
MyCustomSpringBean myCustomerSpringBean;
@InjectMocks
MyBeanToTest myBeanToTest;
@Before
public void config() {
MockitoAnnotations.initMocks(this);
}
@Test
public void someTest() {
//code here
}
}
只是为了在最后做一个快速总结/总结,我的主要问题是我是否应该使用诸如@After
清理类变量之类的东西,或者我应该简单地将它们留给 Java 的正常范围垃圾收集......
我的清理思路:
@After
public void cleanup() {
mockedClassVariable = null;
injectedVariable = null;
}