我使用spring引导启动器测试来编写JUnit测试用例。我喜欢使用JunitParamrunner,它便于为参数化测试传递文件。基本上,它逐行从文件中读取数据,并为每一行调用一个测试用例。问题是使用我需要通过@RunWith与SpringJUnit4ClassRunner以及JUnitParamsRunner。我想不出该怎么做。谁能提供一些线索?
@wjans提到的SpringClassRule是最好的解决方案,但是如果您的Spring版本小于4.2(最新的Spring -boot-start -test依赖于Spring版本4.1.7),您可以在测试构造函数中初始化上下文:
@ContextConfiguration(<your context location>)
@RunWith(JUnitParamsRunner.class)
public class ParameterizedTestWithSpring {
private TestContextManager testContextManager;
public ParametrizedTestWithSpring() throws Exception {
this.testContextManager = new TestContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
}
// your test methods
您可以尝试通过使用SpringClassRule而不是@RunWith
注释来实现spring集成。