【发布时间】:2011-07-11 23:12:13
【问题描述】:
我有一个关于 JUnit 测试的问题。
我们的 JUnit 套件正在测试我们编写的与内存系统交互的各种函数。
我们系统的设计方式要求它是静态的,因此在运行测试之前进行初始化。
我们遇到的问题是,在运行后续测试时,它们会受到之前测试的影响,因此我们有可能(并且很可能)得到误报或不准确的失败。
有没有办法维护我们的 JUnit 测试的测试顺序,但让它重新初始化整个系统,就像从头开始测试系统一样。
我们能想到的唯一选择是编写一个执行此操作的方法,并在每次测试结束时调用它,但是由于需要以这种方式重置很多东西,我希望有是一种更简单的方法。
【问题讨论】:
-
另外,编写一个重新初始化的新方法会非常昂贵。
-
我想我误读了这条评论。您的意思是 开发 成本高昂,运行时间不长 - 对吗?从可测试性的角度来看,您的系统似乎设计得不好——但我敢肯定这是老新闻了。
-
很抱歉给您带来了困惑。从效率的角度来看,我的意思是成本高昂,例如运行时间更长,实施效率低下。不是从开发的角度来看。
-
此外,后续测试并不依赖于先前的测试,它们只是受其影响。当我说保持测试顺序时,我的意思是继续运行测试,尽管由于“重置”而出现任何中断。这在可测试性设计中可能仍然存在问题,但由于内存系统是静态的,我真的看不到我目前的障碍。 (@Before @After 标签看起来像我想要的东西,但仅从代码量的角度来看,这似乎更有效。我想我希望的是一些通用的 @Reset 或其他东西。
标签: java unit-testing testing junit