Я тестирую приложение Spring Batch с использованием Junit:
Это моя работа xml конфигурации:
<!-- parse queue -->
<batch:step id="parseQueue">
<batch:tasklet>
<batch:chunk
reader="readQueue"
processor="processQueue"
writer="customItemWriter"
commit-interval="100">
</batch:chunk>
</batch:tasklet>
</batch:step>
Я тестирую шаг "parseQueue".
Я использую JobLauncherTestUtils для проверки шага, как показано ниже:
jobLauncherTestUtils.launchStep ( "parseQueue");
Проблема в том, что он запускает код шага. Я имею в виду читателя, процессора и писателя.
Я хочу пропустить казнь писателя.
Есть ли способ сделать это?
Есть предложения по издевательству над "Писателем" в Spring Batch?
Я пытался издеваться над Писателем. Это не дразнит, и настоящая реализация Writer вызывается. Обычно это работало бы, но, похоже, не работает с Spring Batch.
Заранее спасибо.
Ниже приведен код моего тестового класса:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:/job/qhandler-job.xml",
"classpath:/spring/qhandler-applicationContext.xml" })
public class TestReader {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Mock
CustomItemWriter writer;
@InjectMocks
private ReadQueueMsgFromWs reader;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testReader() throws UnexpectedInputException, ParseException, NonTransientResourceException, Exception
{
jobLauncherTestUtils.launchStep("parseQueue");
}
}