Как проверить @RestController, когда все сопоставления возвращаются с ResponseEntity? - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно выполнить модульное тестирование на @RestController, где каждый метод возвращается с ResponseEntity. У меня есть хранилище CRUD, но я не знаю, как его протестировать с помощью ResponseEntities.

@RestController
@RequestMapping("/events")
public class EventController {
    @Autowired
    private EventRepository eventRepository;

    @GetMapping("")
    public ResponseEntity<Iterable<Event>> getAll() {
        return ResponseEntity.ok(eventRepository.findAll());
    }

    @GetMapping("/{id}")
    public ResponseEntity<Event> get(@PathVariable Integer id) {
        Optional<Event> event= eventRepository.findById(id);
        if (event.isPresent()) {
            return ResponseEntity.ok(event.get());
        } else {
            return ResponseEntity.notFound().build();
        }
    }

    @PostMapping("")
    public ResponseEntity<Event> post(@RequestBody Event event) {
        EventsavedEvent = eventRepository.save(event);
        return ResponseEntity.ok(savedEvent);
    }
.
.
.

1 Ответ

0 голосов
/ 11 апреля 2020

Пока все хорошо, я могу вам помочь.

Прежде всего, вы должны добавить зависимость модульного теста. После этого вы должны изучить приведенный ниже код. Ниже код состоит только для создания. Удачи.

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)
@ActiveProfiles("dev")
public class EventControllerTests {

    @Autowired
    private TestRestTemplate testRestTemplate;

        @Test
        public void testCreateEvent() {
            Event event = new Event(); // Your entity
            event.setEventName("Test"); // Your entity attributes

            URI location = testRestTemplate.postForLocation("http://localhost:8080/events", event);

            Event event2 = testRestTemplate.getForObject(location, Event.class);

            MatcherAssert.assertThat(event2.getEventName(), Matchers.equalTo(event.getEventName()));


        }

}

...