我怎样才能模拟GoogleCredential来测试我的业务逻辑



我正在为我的一个应用程序编写一个单元测试,其中一部分需要模拟google-api-java-client的GoogleCredential对象。我们使用服务帐户在 SOA 中的服务之间进行身份验证。我想做这样的事情:

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

但是我在"when"调用期间收到一个错误,指示GoogleCredential对象内的"锁定"实例为空。有没有办法让 Mockito 成功存根方法调用?

好的,所以我没有意识到有问题的方法是"最终的",所以我不得不使用 PowerMockito 来存根最终方法。因此,由于我使用的是TestNG,因此我将类签名修改为"扩展PowerMockTestCase",并添加了类注释"@PrepareForTest(GoogleCredential.class)"...最后,在测试方法中:

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

这些更改允许对该方法进行模拟/存根以进行测试。

只是为了记录,七年后你可以查看MockGoogleCredential,就是为此目的而制作的。

相关内容

  • 没有找到相关文章

最新更新