java - 如何处理相互依赖的 JUnit 测试?

标签 java unit-testing testing junit

我有关于 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/

相关文章:

java - printf() 使用数组作为参数。是否可以?

java - 与 SpringJUnit4ClassRunner.class 一起使用时,Mockito/PowerMockito 冲突(可能)

testing - 如何在 SBCL 中运行测试文件

testing - 使用 Jenkins 自动测试 Nifi 流

java - 如何将布局添加到卡片 View 中?

java - OSMDroid Bonus Pack - gradle.build 错误 - 无法解决依赖关系

unit-testing - Pycharm 不允许运行文件。仅显示运行单元测试选项。

unit-testing - 我应该如何测试遗传算法

ruby-on-rails - 电子邮件验证错误在 obj.errors.full_messages 中出现两次(Rails 3.2、Devise、RSpec)

java - 使用自定义 ArrayAdapter 时无法解析方法 super