java - 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());
}
}
解决方案
推荐阅读
- python - 我怎样才能得到负数百分比和最负数排序?
- azure - 在 Windows 服务和云中使用 WebJobs 和 WebJobs 扩展 nuget
- java - 列表中的唯一元素并输出到 csv 文件
- firebase - Firebase 远程配置 REST 授权错误
- python - SciPy ODE 求解器忽略函数
- sql - 为什么派生列组件的表达式不适用于 SSIS 中的空值?
- flutter - 颤振按钮主题
- python - 如何使用numpy获得第n个最大相关系数及其指数?
- spring-boot - 我对'pom.xml' spring-boot 有一些问题
- c++ - 读取 QDataStream 中的特定对象并计算存储的对象数