Рубрики
Без рубрики

Тестирование запроса на публикацию из нескольких частей Spring

Узнайте, как протестировать составной запрос Spring POST с использованием MockMvc с помощью примера.

Автор оригинала: baeldung.

1. Обзор

В этом кратком руководстве мы рассмотрим, как протестировать составной запрос на публикацию весной с помощью MockMvc .

2. Зависимости Maven

Прежде чем мы начнем, давайте добавим последние JUnit и Весенний тест зависимости в ваш pom.xml :


    junit
    junit
    4.13
    test


    org.springframework
    spring-test
    5.1.16.RELEASE
    test

3. Тестирование составного запроса на публикацию

Давайте создадим простую конечную точку в нашем RestController:

@PostMapping(path = "/upload")
public ResponseEntity uploadFile(@RequestParam("file") MultipartFile file) {
    return file.isEmpty() ?
      new ResponseEntity(HttpStatus.NOT_FOUND) : new ResponseEntity(HttpStatus.OK);
}

Здесь метод uploadFile принимает составной запрос POST. В этом методе мы отправляем код состояния 200, если файл существует; в противном случае мы отправляем код состояния 404.

Теперь давайте протестируем описанный выше метод с помощью MockMvc .

Во-первых, давайте автоматически подключим WebApplicationContext в нашем классе модульного тестирования:

@Autowired
private WebApplicationContext webApplicationContext;

Теперь давайте напишем метод для тестирования составного запроса POST, определенного выше:

@Test
public void whenFileUploaded_thenVerifyStatus() 
  throws Exception {
    MockMultipartFile file 
      = new MockMultipartFile(
        "file", 
        "hello.txt", 
        MediaType.TEXT_PLAIN_VALUE, 
        "Hello, World!".getBytes()
      );

    MockMvc mockMvc 
      = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    mockMvc.perform(multipart("/upload").file(file))
      .andExpect(status().isOk());
}

Здесь мы определяем hello.txt файл с использованием MockMultipartFile конструктора , затем мы создаем MockMvc объект, используя WebApplicationContext объект, определенный ранее.

Мы будем использовать метод MockMvc#perform для вызова конечной точки REST и передачи ей объекта file. Наконец, мы проверим код состояния 200, чтобы проверить наш тестовый случай.

4. Заключение

В этой статье мы рассмотрели, как протестировать составной запрос Spring POST с использованием MockMvc с помощью примера.

Как всегда, проект доступен на GitHub .