2
ユニットテストの実行中にメソッドが3回呼び出されます。さまざまなパラメータで呼び出されるたびに最後にメソッドが対応するパラメータで呼び出されたことを確認したい。Mockito、最後に呼び出されたメソッドのパラメータを確認する方法
お願いします。
私の方法:
private void doHandle(Updategram updategram)
throws FixtureNotFoundException, DatatypeConfigurationException {
BetSyncObject betSyncObject = transformer.transformer(updategram);
EventTreeCreation event = betSyncObject.eventTree;
if (!event.getEvent().isEmpty()) {
Event event2 = event.getEvent().get(0);
long timestamp =
updategram.getHeader().getTimeStampUtc().toGregorianCalendar().getTimeInMillis();
String sportName = event2.getSportcode();
String id = event2.getExtId();
publisher.publishEvent(PROVIDER_NAME, betSyncObject, sportName, id, timestamp);
} else {
LOGGER.info("Empty event tree : {}", betSyncObject);
}
}
テスト:
@Test
public void testCountAndSetResultLine() throws Exception{
EventPublisher eventPublisher = Mockito.mock(EventPublisher.class);
BetgeniusService betgeniusService = new BetgeniusService();
BetSyncObject expectedBetSyncObj = transformer.transformer(updategram);
ExecutorService service = Executors.newFixedThreadPool(3);
handle(betgeniusService, updategramFixture, service);
Thread.sleep(50);
handle(betgeniusService, updategramMarketSet, service);
Thread.sleep(50);
handle(betgeniusService, updategramResult, service);
service.shutdown();
service.awaitTermination(20000, TimeUnit.MILLISECONDS);
betgeniusService.getExecutor().shutdown();
betgeniusService.getExecutor().awaitTermination(20000, TimeUnit.MILLISECONDS);
Mockito.verify(eventPublisher, Mockito.times(3)).publishEvent(Mockito.anyString(), Mockito.any(BetSyncObject.class),
Mockito.anyString(), Mockito.anyString(), Mockito.anyLong());
}
この瞬間のためにpublishEvent
方法が正確にexpectedBetSyncObj
で3回呼び出されていないので、私は、例外を取得しています。これは前回だけ呼び出す必要があります。
最後にexpectedBetSyncObj
オブジェクトでpublishEvent
メソッドが呼び出されたことを確認する方法を教えてください。
おかげのようなもの。それが私の必要なものです。 –
** expectedBetSyncObj **とは何ですか? –