Я модульное тестирование, я использую Guice для ди, я аннотирование моего класса с:использования проверить на издевались (с Mockito) объектами впрыскивать по Guice
@Guice(modules = { BatchGuiceModule4Test.class })
public class TestOneDayBatchStarter {
}
Моими объекты хорошо впрыскивается из моего модуля, как эта :
@Inject
private DataManager dataManager;
в моем модуле, я добавляю метод @Provides:
@Provides
@Singleton
public DataManager getDataManager() {
LOG.debug("## init Mocked Data Manager");
DataManager dataManager = mock(DataManager.class);
when(dataManager.getObjectCodeList()).thenReturn(getOcList());
....
return dataManager;
}
И в моем тесте, я называю это метод, который называется specif Метод IC и я хочу, чтобы проверить его:
@Test
public void testDefaultJob() {
JobDetail jobDetail = newJob().ofType(OneDayBatchStarter.class)
.withIdentity(DAILY_DEFAULT_JOB, Scheduler.DEFAULT_GROUP).build();
try {
scheduler.scheduleJob(jobDetail, TriggerBuilder.newTrigger().startNow().build());
} catch (SchedulerException e) {
LOG.warn("error during scheduling", e);
}
verify(dataManager).getObjectCodeList();
}
добавить какой-то след, я вижу, что издевались объект был на самом деле называется как:
"## init Mocked Data Manager "
и
"Call object code list ....."
, но у меня есть погрешность проверки:
FAILED: testDefaultJob
Wanted but not invoked:
dataManager.getObjectCodeList();
-> at net.test.batch.TestOneDayBatchStarter.testDefaultJob(TestOneDayBatchStarter.java:177)
Actually, there were zero interactions with this mock.
Я что-то пропустил, или невозможно проверить мокито через Guice?
, может быть, было бы лучше проверить ваши вещи без участия кварца, нет? –
Я хотел проверить свой класс точно так же, как в моем коде продукта. – Antoine
ОК, поэтому интеграционный тест, а не единичный тест, то :) –