Spring Mockito не может издеваться в ResttemplateJAVA

Программисты JAVA общаются здесь
Anonymous
Spring Mockito не может издеваться в Resttemplate

Сообщение Anonymous »

hi! < /h3>
Я не могу высмеивать данные извлечения из githubapi
, чтобы получить данные, я использую Resttemplate Exchange < /p>
вместо Принимая данные из GitHub, я хочу высмеивать свой собственный < /p>

Код: Выделить всё

Expected :1
Actual   :11
< /code>
Fetch Logic: < /p>
@Component
@Setter
public class GitHubApi {
public List getUserRepos(String user) {
restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
addHeaders(headers);

entity = new HttpEntity(headers);

ResponseEntity response = restTemplate.exchange(
GITHUB_API_URL + "/users/" + user + "/repos",
HttpMethod.GET, entity,
new ParameterizedTypeReference() {
});
return response.getBody();
}
}
< /code>
логика теста: < /p>
    @Mock
private RestTemplate restTemplate;

@InjectMocks
private GitHubApi gitHubApi;

@Test
public void getUserRepos_ShouldReturnRepositories() {
String username = "user";

GitHubRepository mockedRepository = GitHubRepository.builder()
.id(1L)
.name("repo1")
.fullName("user/repo1")
.build();
List expected = List.of(mockedRepository);

ResponseEntity mockResponse = new ResponseEntity(expected, HttpStatus.OK);

HttpHeaders headers = new HttpHeaders();
addHeaders(headers);

when(restTemplate.exchange(
eq(GITHUB_API_URL + "/users/" + username + "/repos"),
eq(HttpMethod.GET),
any(HttpEntity.class),
eq(new ParameterizedTypeReference() {})
)).thenReturn(mockResponse);

List repositories = gitHubApi.getUserRepos(username);

assertNotNull(repositories);
assertEquals(1, repositories.size());
assertEquals("repo1", repositories.getFirst().getName());
}
}
Я пытается удалить уравнение и любого, пытаясь добавить httpentity вместо любого, то же самое с параметризованными>

Подробнее здесь: https://stackoverflow.com/questions/794 ... sttemplate

Вернуться в «JAVA»