具有返回值的模拟测试方法

时间:2019-01-11 15:42:59

标签: java spring-boot mockito

如何为具有返回值(类实例)的方法编写模拟测试

userService

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***********;
}

 @Mock
private userService userService;
private String userId;


@Before
public void set_up(){
    MockitoAnnotations.initMocks(this);
    userId = "";
}

@Test
public void getUserInfo(){

    userService.getUserInfo(userId)

}

我不知道如何为这种方法编写测试用例,任何人都可以提供一些想法吗?

2 个答案:

答案 0 :(得分:2)

let result = [];
array.forEach(el => {
  result.push(el.monthly);
})
console.log(result);

虽然不太清楚您要在这里实现什么。如果您正在测试的类是UserService,那么您不应该在模拟它。您应该在测试中调用getUserInfo,并声明返回值与您的期望相同。

答案 1 :(得分:1)

您可以使用mockito中的when(mock.method).thenReturn(value)。

when(userservice.getUserInfo(eq(this.userId)).thenReturn(<your value here>)