2017-05-04 1 views
1

私のユニットテストでは、scheduleAtFixedRate(...)メソッドが呼び出されたときに、scheduleAtFixedRate(...)メソッドが呼び出されたときにテストするクラスにScheduledExecutoryServiceクラスの模擬インスタンスを注入しました。それは嘲笑したFutureを返します。しかし何らかの理由で、常にnullを返しています。何か案は ?黙ってScheduledExecutorService.scheduleWithFixedDelay(...)がヌルを返しています

アプリケーションコード:

Future<?> t = 
scheduledExecutorService.scheduleAtFixedRate(this, 10, 10, TimeUnit.SECONDS); 

テストコード:

@Mock ScheduledExecutorService scheduledExecutorService; 
@Mock ScheduledFuture<?> t; 

Mockito.doReturn(t).when(scheduledExecutorService).scheduleWithFixedDelay(
any(Runnable.class), anyLong(), anyLong(), any(TimeUnit.class)); 
+2

scheduleAtFixedRate ...? –

+0

それはそれでした。良いキャッチ。 – kpatelio

答えて

2

あなたがロング値を期待しているのにあなたは(そしておそらくそれは、メソッドパラメータの定義である)整数を渡しています。

変更するには:scheduleWithFixedDelay対

Mockito.doReturn(t).when(scheduledExecutorService).scheduleWithFixedDelay(
any(Runnable.class), anyInt(), anyInt(), any(TimeUnit.class)); 
+0

私は引数をlongに変更しましたが、引き続き問題が見られます。 – kpatelio

関連する問題