【发布时间】:2020-06-30 14:41:21
【问题描述】:
我正在尝试为 Retrofit 编写单元测试用例,我用它来调用 Google Api 以从 google 令牌中提取详细信息。 请帮助mw模拟这个类
技术栈 弹簧靴 (JUnit 4)mockito
我想为此函数编写测试用例 这是我的功能
public String extractGmail(String googleToken) throws IOException {
final Call<GmailDTO> call = googleTokenValidatorAPI.authenticateUsingGmail(googleToken);
final Response<GmailDTO> response = call.execute();
if (response.isSuccessful() && response.body().getHd().equals("nineleaps.com")) {
return response.body().getEmail();
}
throw new Unauthorized("Token Invalid");
}
GmailDTO 用于存储来自 call.execute() 的响应
GmailDTO
公开课 GmailDTO {
private String atHash;
private String sub;
private boolean emailVerified;
private String kid;
private String iss;
private String typ;
private String givenName;
private String locale;
private String picture;
private String aud;
private String azp;
private String name;
private String hd;
private long exp;
private String familyName;
private long iat;
private String alg;
private String email;
private String jti;
}
这是我的改造配置类
@配置 公共类 GmailLoginConfig {
@Bean
public GoogleTokenValidatorAPI googleTokenValidatorAPI() {
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://www.googleapis.com/")
.addConverterFactory(GsonConverterFactory.create()).build();
return retrofit.create(GoogleTokenValidatorAPI.class);
}
}
而 GoogleTokenValidatorAPI 类是
@配置 公共接口 GoogleTokenValidatorAPI {
@POST("oauth2/v3/tokeninfo")
Call<GmailDTO> authenticateUsingGmail(@Query("id_token") String token);
}
【问题讨论】:
标签: java spring-boot unit-testing mockito retrofit