У меня есть класс MyConfig для конфигурирования Spring с моим читателем, писателем, шагом и компонентами Job. Ниже приведен мой бин Step.
@Bean
public Step myStep() {
return stepBuilderFactory.get(STEP_NAME).<MyType, MyType>chunk(getMinimumChunkSize())
.reader(myReader)
.writer(myWriter)
.build();
}
Когда я пытаюсь выполнить его модульное тестирование с помощью приведенного ниже класса
@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(classes = {MyConfig.class})
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class,
StepScopeTestExecutionListener.class })
public class MyConfigTest {
@Mock
private StepBuilderFactory stepBuilderFactory;
@Mock
private StepBuilder stepBuilder;
@Mock
private SimpleStepBuilder simpleStepBuilder;
@Mock
FlatFileItemWriter myWriter;
@Mock
JdbcCursorItemReader myReader;
@InjectMocks
private MyConfig myConfig;
@Before
public void setUp() {
when(stepBuilderFactory.get(anyString())).thenReturn(stepBuilder);
when(stepBuilder.chunk(any())).thenReturn(simpleStepBuilder);
when(simpleStepBuilder.reader(myReader)).thenReturn(simpleStepBuilder);
when(simpleStepBuilder.writer(myWriter)).thenReturn(simpleStepBuilder);
}
@Test
public void testChecklistStep() {
final Step step = myConfig.checklistStep();
assertNotNull(step);
}
}
При отладке я получаю stepBuilderFactory.get(STEP_NAME)
, который дает макет, как ожидается, как показано ниже
но stepBuilderFactory.get(STEP_NAME).<MyType, MyType>chunk(getMinimumChunkSize())
возвращает пустое значение вместо макета SimpleStepBuilder. Это выглядит довольно просто, я новичок в мокито и весенней партии. Почему thenReturn не работает в этом случае?
Я пытался прочитать официальную документацию , но это не помогло тому, что я пытаюсь сделать. Пожалуйста, предложите, если мой подход неверен или я что-то упускаю?