Spring Boot: тестирование загрузки файлов - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь создать юнит-тест в приложении Spring REST. тест связан с конечной точкой для загрузки MultipartFile.

Вот аргументы, которые мой метод принимает в рамках моего @RestController

@PostMapping("/upload")
    public ResponseEntity uploadFile(@HasFileName @RequestParam("file") MultipartFile file,
                                     @NotEmpty @RequestParam("entity") String entity, @NotEmpty @RequestParam("language") String language,
                                     @NotEmpty @RequestParam("lastModified") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime lastModifiedDateTime,
                                     @NotEmpty @RequestParam("createdDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime createdDateTime)
            throws IOException {

Я не могу найти способ получить эту информацию из составной части внутри модульного теста. Я не могу найти документацию по созданию пружинного модульного теста для Spring REST, поэтому любые отзывы будут оценены.


@Test
    public void testUploadFile() throws Exception{
        ResultMatcher ok = MockMvcResultMatchers.status().isOk();

        String filename = "test.txt";
        File file = new File("/test" + filename);

        file.delete();

        MockMultipartFile mockMultipartFile = new MockMultipartFile("file", "test.txt", "multipart/form-data", "test data".getBytes());

        upload.uploadFile(mockMultipartFile, mockMultipartFile.getName()) //missing more data

        //more logic on how to assert that the file is not empty 


    }

1 Ответ

0 голосов
/ 14 января 2020

В принципе, тест должен проверять результат метода uploadFile ():

ResultActions result = 
this.mockMvc.perform(multipart("/svc").file(file)
        .header(HttpHeaders.AUTHORIZATION,
            "Bearer token"))
        .andExpect(content().string("response"))
        .andExpect(status().isOk());

Файл является входным параметром, поэтому я не понимаю, почему вы хотите убедиться, что он не пустой: это может быть Я считаю, что полезно проверить взаимодействие с другими имитаторами (например, проверка использования файла в методе FileService.save ())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...