我正在测试一个弹簧批处理项目制处人,该项目读取从db中获取值。
如测试阶梯式组件页面所建议的,我添加 @testexecutionListeners({disportencyInctiveTyTestexecutionListener.Class,stepscopetestectectecutionlistener.class.class}) 我遇到的问题是上述行: @testexecutionlisteners ... 正在阻止@sql(scriptss = ...命令执行。 CustomItemProcersor是轻松从数据库读取值。 为什么上述注释阻止@SQL脚本运行,我该如何解决?@ContextConfiguration(locations = { "classpath:spring/context-configuration.xml" })
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class, StepScopeTestExecutionListener.class })
@RunWith(SpringJUnit4ClassRunner.class)
public class CustomItemProcessorTest
{
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Autowired
private ItemProcessor<InputClass, OutputClass> customItemProcessor;
@Test
@Sql(scripts = {"insertDataToBeRetrievedByCustomItemProcessor.sql" },
config = @SqlConfig(dataSource = "dataSource"))
public void assertThatCustomItemProcessorProcessorIsRetrievingStillBirthSasEtlObject() throws Exception
{
OutputClass outputObject = customItemProcessor.process(inputClassObject);
}
}
使用注释 testexecutionListeners 时,您超越了默认配置要使您的SQL脚本执行,您需要添加此侦听器 sqlScriptStesteSecutionListener
@TestExecutionListeners( {
DependencyInjectionTestExecutionListener.class,
StepScopeTestExecutionListener.class,
SqlScriptsTestExecutionListener
})