问题标签 [junitparams]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
42 浏览

java - Junit:@Parameters 方法在任何其他测试之前运行

我有一个常规的参数化测试类,使用 JUnit 4.12 完成(也测试了 4.13.1)。

在应用程序中,有一个我无法修复的设计问题(我的意思是现在不能解决,因为影响太大)。其他类中有一些静态属性,例如

MyTest.data()向其中添加一些数据staticMap(这很糟糕,但我别无选择)。但是其他一些测试也使用这个属性,他们添加数据然后清理它。

我注意到在调试模式下,当我运行测试(至少来自 intellij)时,它:

  • 一开始就调用MyTest.data()(这很奇怪):数据被添加到staticMap,
  • 它运行一堆测试,将使用和清理staticMap
  • 当它运行 MyTest 时,必要的数据已被清除。

它看起来像一个奇怪的行为,我希望 @Parameters 方法在测试类启动时被执行。

我还使用JUnitParamsRunner(使用提供程序方法和提供程序类)进行了测试,并且我有相同的行为。

有没有办法绕过这种行为?