Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有返回值的模拟测试方法_Java_Spring Boot_Mockito - Fatal编程技术网

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);