【发布时间】:2016-04-26 22:40:11
【问题描述】:
我有一个正在编写集成测试的 Spring Boot Batch 应用程序。当我执行测试时,整个批处理应用程序都会运行。如何只执行被测应用程序代码?
这是我的测试代码。当它执行时,整个批处理作业步骤会运行(读取器、处理器和写入器)。然后,测试运行。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = BatchApplication.class))
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
StepScopeTestExecutionListener.class })
public class StepScopeTestExecutionListenerIntegrationTests {
@Autowired
private FlatFileItemReader<String> reader;
@Rule
public TemporaryFolder testFolder = new TemporaryFolder();
public StepExecution getStepExection() {
StepExecution execution = MetaDataInstanceFactory.createStepExecution();
return execution;
}
@Test
public void testGoodData() throws Exception {
//some test code on one met
File testFile = testFolder.newFile();
PrintWriter writer = new PrintWriter(testFile, "UTF-8");
writer.println("test");
writer.close();
reader.setResource(new FileSystemResource(testFile));
reader.open(getStepExection().getExecutionContext());
String test = reader.read();
reader.close();
assertThat("test", equalTo(test));
}
}
【问题讨论】:
标签: java spring spring-boot spring-batch spring-test