Luc*_*s T 5 java spring junit4 spring-batch
我正在测试一个 Spring Batch ItemProcessor,它从数据库中读取值。
根据测试步骤范围组件页面上的建议,我将@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class, StepScopeTestExecutionListener.class })添加到测试套件注释中:
@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);
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是上面的行:@TestExecutionListeners...正在阻止 @Sql(scripts =... 命令执行。
customItemProcessor 可以轻松地从数据库读取值。
为什么上述注释会阻止 @Sql 脚本运行?我该如何解决这个问题?
当您使用注释TestExecutionListeners时,您会过度使用默认配置来执行 sql 脚本,您需要添加此侦听器SqlScriptsTestExecutionListener
@TestExecutionListeners( {
DependencyInjectionTestExecutionListener.class,
StepScopeTestExecutionListener.class,
SqlScriptsTestExecutionListener
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1782 次 |
| 最近记录: |