首页 > 解决方案 > Spring Batch Integration Test - 运行时无法访问作业参数

问题描述

我使用 JobLauncherTestUtils 传递参数实现了一个测试。但在我的 JobParametersValidator 中,我验证没有过去的参数。可能是什么问题?

@Component
public class ParameterValidator implements JobParametersValidator {

    @Override
    public void validate(JobParameters parameters) throws JobParametersInvalidException {


        String param = parameters.getString("param");

        . . . 
        //param not exists here
        if (!StringUtils.hasText(param)) {
            throw new JobParametersInvalidException("Param Error");
        }
        . . . 
    }   
}   

@RunWith(SpringRunner.class)
@SpringBootTest
@SpringBatchTest
public class IntegrationTest {

    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;  

    @Test
    public void test() {


        JobParametersBuilder paramsBuilder = new JobParametersBuilder();
        paramsBuilder.addString("param", "1");

        JobExecution jobExecution = jobLauncherTestUtils.launchStep(
                "stepName", paramsBuilder.toJobParameters());

    }


}

标签: javaspring-bootjunitspring-batch

解决方案


推荐阅读