簡體   English   中英

我如何模擬 GoogleCredential 以測試我的業務邏輯

[英]How can I mock GoogleCredential in order to test my business logic

我正在為我的一個應用程序編寫單元測試,其中一部分需要 mocking 來自 google-api-java-client 的 GoogleCredential object。 我們使用服務帳戶在我們的 SOA 中的服務之間進行身份驗證。 我想做類似的事情:

GoogleCredential cred = mock(GoogleCredential.class);
when(cred.refreshToken()).thenReturn(true);

但是我在“when”調用期間收到一個錯誤,指示 GoogleCredential object 中的“lock”實例是 null。有什么方法可以讓 Mockito 成功存根方法調用?

好的,因此我沒有意識到所討論的方法是“最終的”,因此我不得不使用PowerMockito存根最終的方法。 因此,由於我使用的是TestNG,因此我將類簽名修改為“擴展PowerMockTestCase”,並添加了類批注“ @PrepareForTest(GoogleCredential.class)” ...最后,在測試方法中:

PowerMockito.stub(credentials.getClass().getMethod("refreshToken")).toReturn(true);

這些更改允許模擬/添加方法以進行測試。

僅作記錄,七年后,您可以查看專為此目的而制作的 MockGoogleCredential。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM