【发布时间】:2018-04-18 16:33:35
【问题描述】:
我正在尝试对一个简单的存储库进行单元测试,但它给了我一个NullPointerException。存储库包含一种依赖于 webService 的方法。 webService 工作正常(我已成功测试)。我正在使用 Retrofit 进行 webService 和 Dagger 进行依赖注入。以下是我的代码:
网络服务:
public interface UserWebService {
@GET(USER_ENDPOINT)
Call<UserResponse> getUser();
}
存储库:
public class UserRepository {
@Inject
UserWebService mUserWebService;
public void getUserEmail() throws IOException {
mUserWebService.getUser().execute().body().getUser().getEmail();
}
}
单元测试:
public class UserRepositoryTest {
@Mock
private UserWebService mUserWebService;
@Test
public void getUserEmail() throws IOException {
when(mUserWebService.getUser().execute().body().getUser().getEmail())
.thenReturn("some@email.com");
}
}
附: NullPointerException 被抛出是因为 mUserWebService,这是可以理解的,但是我该如何测试这个单元呢?
【问题讨论】:
标签: java android unit-testing mocking dagger-2