junit 以文件和主体作为输入来测试API

n9vozmp4  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(97)

我创建了一个restful api来上传一个文件,问题是我需要另一个对象来上传文件,所以我创建了一个简单的控制器:

String uploadFile(@RequestBody DocumentInfo info,@RequestParam("file") MultiPartFile file){
   ...
}

我的问题是如何使用mockito测试这个API?

jfgube3f

jfgube3f1#

也许像这样的东西?

@Autowired
    private MockMvc mockMvc;

    @Test
    public void parseMultipartFile_Should_Return_Ok() throws Exception {

        final MockPart file = new MockPart("file", new ClassPathResource("test.file").getInputStream().readAllBytes());
        file.getHeaders().set(CONTENT_TYPE, "application/octet-stream");

        final MockPart jsonData = new MockPart("info", "{\"some\": \"data\"}".getBytes());
        jsonData.getHeaders().set(CONTENT_TYPE, "application/json");

        mockMvc.perform(MockMvcRequestBuilders.multipart("/upload")
                .part(jsonData, file))
                .andExpect(status().isOk());
    }

相关问题