我有一些需要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/