我正在为我的一个应用程序编写一个单元测试,其中一部分需要模拟google-api-java-client的GoogleCredential对象。我们使用服务帐户在SOA中的服务之间进行身份验证。我想做如下操作:
GoogleCredential cred = mock(GoogleCredential.class);
when(cred.refreshToken()).thenReturn(true);
但是我在“when”调用过程中得到一个错误,指示GoogleCredential对象内部的“lock”示例为空。是否有某种方法可以让Mockito成功地存根该方法调用?
2条答案
按热度按时间vbkedwbf1#
好了,我还没有意识到这个方法是“final”,所以我不得不使用PowerMockito来存根final方法。所以,由于我使用的是TestNG,我修改了类签名为“extends PowerMockTestCase”,并添加了类注解“@PrepareForTest(GoogleCredential.class)...”最后,在测试方法中:
这些变更允许对该方法进行模拟/存根测试。
szqfcxe22#
只是为了记录在案,七年后你可以看看MockGoogleCredential,就是为了这个目的而做的。