Если вы не доверяете Step
реализациям, предоставленным Spring Batch, я бы протестировал компонент (который должен считывать значения из контекста выполнения шага), используемый на рабочем шаге, а не сам рабочий шаг. Позвольте мне привести два примера:
рабочий шаг, ориентированный на куски
В этом случае я бы провел модульное тестирование компонента (читателя, процессора или модуля записи), которому необходим доступ к значению из выполнения шага контекст, а не сам шаг, ориентированный на чанк (который предоставляется Spring Batch и должен быть доверенным, если вы ему не доверяете).
Простой шаг рабочего тасклета
Если рабочий шаг это простой тасклет, вы можете выполнить модульное тестирование самого Tasklet
, а не TaskletStep
.
В обоих случаях компонент (считыватель / процессор / записывающее устройство или тасклет) должен иметь ступенчатую область видимости, чтобы получить доступ к контекст выполнения шага, и вы можете смоделировать / заглушить контекст выполнения шага по мере необходимости. Пожалуйста, обратитесь к Тестирование ступенчатых компонентов для более подробной информации.