我有一些需要Spring上下文的集成测试,并且将从参数化测试中受益匪浅(将删除大量重复的代码)。我目前正在使用类注释运行测试

@RunWith(Parameterized.class)

我用加载了Spring上下文

@ClassRule
public static final SpringClassRule SPRING_CLASS_RULE = new SpringClassRule();

@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();


上面的方法有效,但是坦率地说,我不知道它实际上在做什么。谁能解释,还有其他方法可以与Spring同时运行参数化测试吗?

最佳答案

任何IDE都允许您跳到SPring规则的定义并对其进行调试。与JUnit参数化类相同。


JUnit规则在每个方法之前和之后以及类之前和之后进行准备。
JUnit Runner在每个方法之前和之后,类之前和之后进行准备,然后运行所有方法


两条Spring测试规则都与Spring Runner进行相同的准备/清除。

如您所见,规则和运行者的功能大致相同,只有Spring赛跑者是为了方便。

其他合理运行此方法的方法可能是使用JUnit5或TestNG,而不是JUnit4。或者,也许有一种方法可以在@Before方法中设置所有spring上下文,而不是使用注释。
但是实际上,您一直在做的推荐方法是将Spring设置与参数化测试结合起来。

关于java - 通过Spring和Parameterized运行JUnit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50634549/

10-11 02:56
查看更多