我有关于 JUnit 测试的问题。
我们的 JUnit 套件正在测试我们编写的与内存系统交互的各种函数。
我们系统的设计方式要求它是静态的,因此在运行测试之前进行初始化。
我们遇到的问题是,当运行后续测试时,它们会受到之前测试的影响,因此我们有可能(并且很可能)出现误报或不准确的失败。
有没有一种方法可以维持我们的 JUnit 测试的测试顺序,但让它重新初始化整个系统,就像从头开始在系统上进行测试一样。
我们能想到的唯一选择是编写一个执行此操作的方法,并在每次测试结束时调用它,但由于有很多很多事情需要以这种方式重置,我希望有是一种更简单的方法。
最佳答案
我多次看到测试存在相互依赖的问题(有时是故意的!)。
首先您需要设置一个setUp方法:
@Before
public void setUp() {
super.setUp();
// Now clear, reset, etc all your static data.
}
这会在每次测试之前由 JUnit 自动运行,并将重置环境。您也可以在后面添加一个,但在前面更能确保一个干净的起点。
测试的顺序通常是它们在测试类中的顺序。但这绝对不应该被假设,并且以此为基础编写代码是一个非常糟糕的主意。
返回documentation 。如果您需要更多信息。
关于java - 如何处理相互依赖的 JUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657776/