- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:
我正在为我的一种 Spring 批量工作方法编写单元测试。我使用mockito 来模拟我的批处理作业依赖项。在 jobExecution 发挥作用之前一切都很好。我想要测试的方法调用了 jobExecution 变量,但随后它给了我 NPE (NullPointerException),并且我没有成功地用 mockito 来模拟它。
<小时/>我尝试过的事情:
就像问题部分提到的那样,我尝试使用 @Mock 注释来模拟它。
<小时/>代码:
我的方法需要进行单元测试(currentJobExecution是给我错误的行):
@Override
public List<Date> getValidDates() {
List<Date> allDates = dateService.findAllFailedDates(getJobName(), false);
List<Date> datesThatCanBeWorkedOn = getAllDatesThatHaveNecessaryDependencies(allDates);
Collection<Date> datesThatCannotBeWorkedOn = CollectionUtils.subtract(allDates, datesThatCanBeWorkedOn);
currentJobExecution.getExecutionContext().put("datesThatCannotBeWorkedOn", datesThatCannotBeWorkedOn);
return datesThatCanBeWorkedOn;
}
我的单元测试尝试测试上面的代码:
@RunWith(SpringJUnit4ClassRunner.class)
public class ValidDateReaderTest extends BaseTest {
@InjectMocks
private ValidDateReader validDateReader;
@Mock
private DateService dateService;
@Mock
private JobExecution currentJobExecution;
@Mock
private JobInstance jobInstance;
@Test
public void getDatesNeededProcessingTest() {
when(jobInstance.getJobName()).thenReturn(BatchNames.VALID_DATE_READER);
when(currentJobExecution.getJobInstance()).thenReturn(jobInstance);
List<Date> allDates = new ArrayList<>();
allDates.add(DateUtils.addDays(new Date(), -5));
allDates.add(DateUtils.addDays(new Date(), -4));
allDates.add(DateUtils.addDays(new Date(), -3));
allDates.add(DateUtils.addDays(new Date(), -2));
allDates.add(DateUtils.addDays(new Date(), -1));
when(dateService.findAllFailedDates(BatchNames.VALID_DATE_READER, false))
.thenReturn(allDates);
assertEquals(1, validDateReader.getValidDates().size());
}
}
<小时/>
预期结果和实际结果:
当我删除此 currentJobExecution
currentJobExecution.getExecutionContext().put("datesThatCannotBeWorkedOn", datesThatCannotBeWorkedOn);
从我想要测试的方法,然后测试成功完成。但我无法删除它,因为它是业务逻辑的一部分。
最佳答案
似乎currentJobExecution.getExecutionContext()
正在返回null
。您可能也想 mock 它:
when(currentJobExecution.getExecutionContext()).thenReturn(new ExecutionContext());
关于java - 使用mockito初始化spring batch jobExecution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409384/
我有一个编写器,其中有一个动态值,需要传递给 JobExecutionListener 的 afterJob(JobExecution jobExecution) 。希望得到一些建议。谢谢。
问题: 我正在为我的一种 Spring 批量工作方法编写单元测试。我使用mockito 来模拟我的批处理作业依赖项。在 jobExecution 发挥作用之前一切都很好。我想要测试的方法调用了 job
我有一个带有PreparedStatementSetter的Spring批处理,用于查询读取器步骤。我想从之前保存到 ExecutionContext 的PreparedStatementSetter
我目前正在从事 Spring Batch CSV 导出工作。使用基于Chunk的读取器、写入器、处理器。读取和处理工作完美,但 FlatFileItemWriter 始终覆盖输出 CSV 文件。我希望
Spring Batch JobExecution 类的 getAllFailureExceptions() 和 getFailureExceptions() 方法有什么区别?将作业异常记录到数据库的
我已经使用 SpringBatch 几个月了..我曾经将与执行相关的变量(如页数、项目数、批处理的当前位置等)存储到 Bean 中。然后使用 setVar()、getVar( )-setter 和 g
我尝试使用以下内容, List jobExecutions = getJdbcTemplate().query("SELECT JOB_EXECUTION_ID, START_TIME
我正在尝试在单个 tomcat 服务器实例中部署两个 war 。但它抛出错误。任何人都可以帮忙吗? PFB 错误日志。 19:39:28,294 ERROR pool-2-thread-1 conte
我有一个 JobExecutionListener.afterJob() 实现,它打印从所有先前步骤执行中获得的一些信息: JobExecutionListener.beforeJob(): jobE
我是一名优秀的程序员,十分优秀!