Java 具有返回值的模拟测试方法
如何为具有返回值的方法(类实例)编写模拟测试 用户服务Java 具有返回值的模拟测试方法,java,spring-boot,mockito,Java,Spring Boot,Mockito,如何为具有返回值的方法(类实例)编写模拟测试 用户服务 public User getUserInfo(String userId) { RestTemplate restTemplate = new RestTemplate(); String url = http:127.0.0.1 + userId ; return restTemplate.getForObject(url, User.class); } public class Tim
public User getUserInfo(String userId) {
RestTemplate restTemplate = new RestTemplate();
String url = http:127.0.0.1 + userId ;
return restTemplate.getForObject(url, User.class);
}
public class TimUser {
private String id = null;
private String userName = null;
**********GET & SET method***********;
}
我不知道如何为这种方法编写测试用例,有人能提供一些想法吗?您可以使用when(mock.method)。然后从mockito返回(value)
when(userservice.getUserInfo(eq(this.userId)).thenReturn(<your value here>)
when(userservice.getUserInfo(eq(this.userId)).thenReturn()
但是,不太确定您在这里想要实现什么。如果您测试的类是UserService,那么您不应该模仿它。您应该在测试中调用getUserInfo,并声明返回值与您的期望值相同。也许我不太理解这个问题,但从我看到的情况来看,您似乎是要测试你的mock吗?事实上,我不明白为什么你需要一个mock,因为getUserInfo()方法的结果似乎只依赖于输入。你不需要模拟你正在测试的类。我认为你需要在你的用户服务和mock restTemplate上使用
@injectmock
。
when(userservice.getUserInfo(eq(this.userId)).thenReturn(<your value here>)
Mockito.when(userService.getUserInfo(userId)).thenReturn(value);