Исключение RestTemplate не найдено преобразователей при тестировании загрузочного приложения Spring - PullRequest
0 голосов
/ 24 сентября 2019

Я новичок в мире тестирования весенних загрузочных приложений.Я хочу провести интеграционное тестирование в моем загрузочном приложении Spring.Но я получаю следующее исключение.

org.springframework.web.client.HttpClientErrorException$BadRequest: 400 null

Я добавляю сотрудника и отдел в базу данных в памяти с двунаправленной связью.

public void testPostEmployee() throws Exception
            {       
        System.out.println("Inside Post Employee method");

        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
        EmployeeTestDTO employeeTestDTO = new EmployeeTestDTO();
        DepartmentTest departmentTest = new DepartmentTest(1,"Sales");
        employeeTestDTO.setName("ABC");
        employeeTestDTO.setAge(20);
        employeeTestDTO.setSalary(1200.1);
        employeeTestDTO.setDepartmentTest(departmentTest);

        ObjectMapper objectMapper = new ObjectMapper();

        String data = objectMapper.writeValueAsString(employeeTestDTO);
        System.out.println(data);

        HttpEntity<String> httpEntity = new HttpEntity<String>(data,httpHeaders);

        ResponseEntity<?> postResponse = restTemplate.postForEntity(createURLWithPort("/employee"), 
                httpEntity,String.class);

        Assert.assertEquals(201, postResponse.getStatusCodeValue());            

}

Это мое новое редактирование.В соответствии с ранее высказанным предложением я пытался реализовать их все, но ни один из них не удался.Это дает неверный запрос 400 пустое исключение.Подскажите пожалуйста как ее решить

1 Ответ

2 голосов
/ 24 сентября 2019

Вы должны изменить ContentType с APPLICATION_FORM_URLENCODED на APPLICATION_JSON.

httpHeaders.setContentType(MediaType.APPLICATION_JSON);

Также вам нужно добавить RestController:

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

@RestController
public class Controller {

    @PostMapping("/employee")
    @ResponseStatus(HttpStatus.CREATED)
    public void getEmploee(@RequestBody EmployeeTestDTO employee) {
        System.out.println(employee);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...