【问题标题】:How to test uploading files with rest assured in Spring?Spring如何测试放心上传文件?
【发布时间】:2019-01-15 13:30:42
【问题描述】:

我正在尝试使用我的 API 创建一个用于上传 mp3 文件的测试。我不知道该怎么做。

我的文件 testsound.mp3 位于我项目的资源文件夹中。

我的 API 代码:

@PostMapping(value = "/tracks", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Track create(@RequestParam("file") MultipartFile file) throws IOException, InvalidDataException, UnsupportedTagException {
    return trackService.createTrack(file);
}

到目前为止我的测试代码:

@Test
public void eTestUploadTrack() throws IOException {
    File file = new ClassPathResource("testsound.mp3").getFile();

    trackId = given()
            .header("X-Authorization", token)
            .param("file", file)
            .post("/tracks")
            .then()
            .statusCode(200)
            .extract()
            .path("id").toString();
}

我的项目结构:

project structure

希望任何人都可以帮助我!

提前致谢!

【问题讨论】:

    标签: spring api file testing rest-assured


    【解决方案1】:

    您可以使用 multipart() 方法进行文件上传测试。

    工作代码:

        @Test
    public void eTestUploadTrack() throws IOException {
        File file = new ClassPathResource("testsound.mp3").getFile();
    
        trackId = given()
                .header("X-Authorization", token)
                .contentType(MediaType.MULTIPART_FORM_DATA_VALUE)
                .multiPart("file", file)
                .post("/tracks")
                .then()
                .statusCode(200)
                .extract()
                .path("id").toString();
    }
    

    如需进一步阅读,请点击以下链接:

    1. Example 1
    2. RestAssured JUNITs

    【讨论】:

    • 您好,当我应用此代码时,我收到以下错误:java.lang.AssertionError: 1 期望失败。预期状态代码 与实际状态代码 不匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2020-03-11
    相关资源
    最近更新 更多