【问题标题】:JUnit Parameterized Tests ProcessingJUnit 参数化测试处理
【发布时间】:2015-01-19 01:06:07
【问题描述】:

我有一个关于 JUnit 中的参数化测试的问题。我正在运行一个包含所有测试类的测试套件,我的课程要求有一个测试套件来运行我的所有测试类,所以我无法修改它。问题是我有一堆 Entry 对象(让我们将其视为具有唯一 id 从 1 开始并在每次创建它的新实例时递增的对象),并且它们正在由 JUnit 进行预处理。在编译和运行我的程序时,我有 9 个条目,它们在 ParamTest 类中声明。在另一类 (EntryTest) 中,我创建了一个条目,它的 ID 应该为 1。但是,它的 ID 为 10,这意味着参数化测试类中的 9 个条目是事先创建的。

我的问题是,是否有强制ParamTest 类在运行EntryTest 类之前不进行任何预处理,或者这是不可能的。在套件中,我确保在ParamTest 之前声明EntryTest。如果不可能,除了创建单独的套件或单独运行测试之外,我还能解决这个问题吗?我正在考虑使用公共静态 int 来跟踪来自预处理量的 ID,但这听起来像一个丑陋的解决方案。

【问题讨论】:

    标签: java unit-testing junit parameterized


    【解决方案1】:

    我认为你的测试会变得丑陋、快速,除非你有办法将你的静态类重置为已知状态。

    我建议您公开一个包私有方法,该方法允许您将 ID 值重置为特定的值(例如0)。

    测试应该完全相互独立,即使在同一个测试类中。

    【讨论】:

      猜你喜欢
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多