Kaigo :
私は、モックメソッドの呼び出しの数を確認するためにmockitoを使用してトラブルを抱えています。
これは私ですテスト
@Mock
private SquareClient squareClient;
@Mock
private PaymentsApi paymentsApi;
@Test
public void testBlah() throws Exception {
...
when(squareClient.getPaymentsApi().getPayment("p1")).thenReturn(VALID_PAYMENT_RESPONSE);
sut.process(EXAMPLE_PAYLOAD);
verify(squareClient).getPaymentsApi().getPayment("p1"); //<--------------error here
}
これは私のある設定方法
@Before
public void setup() {
...
when(squareClient.getPaymentsApi()).thenReturn(paymentsApi);
...
}
エラー
com.squareup.square.SquareClient.getPaymentsApi(SquareClient.java:239)ででも2倍であった:1時間を募集:
だと罰金だが、あなたが見たときに2つの呼び出しが来るから。。一つはサービスであり、
Payment payment = squareClient.getPaymentsApi().getPayment(paymentId).getPayment();
そして、テストで1。なぜ、この1はここですか?
when(squareClient.getPaymentsApi().getPayment("p1")).thenReturn(VALID_PAYMENT_RESPONSE);
私の問題
まず、1つのだけの呼び出しがあるはずです。
第二に、私は2回をチェックしたときに
verify(squareClient, times(2)).getPayment("p1")
私が取得ヌルポインタを getPaymentsApiは()今nullであるため。ときモック()は二度目を適用していないためですか?
トム・クールス:
PaymentsApiオブジェクトに直接@Testであなたの()文を適用します。
when(paymentsApi.getPayment("p1")).thenReturn(VALID_PAYMENT_RESPONSE);
「いつ()」を使用するときは、あなたのメソッドの呼び出しをチェーンすることはできません。