Как написать тестовый тест для метода с возвращаемым значением (экземпляр класса)
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)
}
Я не знаю, как написать тестовый пример для такого метода, может ли кто-нибудь поделиться некоторыми идеями?
Вы не издеваетесь над классом, который тестируете. Я думаю, вам нужно использовать @InjectMocks в своем пользовательском сервисе и имитировать restTemplate.




Вы можете использовать when (mock.method) .thenReturn (value) из mockito.
when(userservice.getUserInfo(eq(this.userId)).thenReturn(<your value here>)
Mockito.when(userService.getUserInfo(userId)).thenReturn(value);
Не совсем уверен, чего вы здесь пытаетесь достичь. Если тестируемый вами класс - UserService, вам не следует издеваться над ним. Вы должны вызывать getUserInfo в своем тесте и утверждать, что возвращаемое значение совпадает с вашими ожиданиями.
Возможно, я не очень хорошо понял вопрос, но из того, что я вижу, похоже, что вы пытаетесь проверить свой макет? На самом деле я не понимаю, зачем вам вообще нужен макет, поскольку результат метода getUserInfo (), похоже, зависит только от ввода.