首页 > 解决方案 > “POST”方法使用放心抛出 500 代码

问题描述

我在 REST Assured 库中使用 Student POJO 创建了一个发布请求。还在 pom.xml 中添加了 gson 对象序列化程序。但是我的代码没有发布任何内容,我收到了 500 响应代码。

任何有关这方面的帮助都将是非常可观的。

当我将 JSON 作为字符串传递时,我的代码正在运行。它只是在传递学生对象时不起作用。

@Test
public void createNewStudent() {
    Student student = new Student();
    Faker fake = new Faker();
    List<String> courses = new ArrayList<String>();
    courses.add("Accounting");
    courses.add("Statistics");              
    student.setFirstname(fake.name().firstName());
    student.setLastname(fake.name().lastName());
    student.setEmail(fake.internet().emailAddress());
    student.setProgramme("Financial Analysis");
    student.setCourses(courses);
    
    
    given()
    .when()
    .contentType(ContentType.JSON)
    .body(student)
    .post()
    .then()
    .statusCode(201)
    ;
}

学生 POJO

public class Student {  
    public String getFirstname() {
        return firstname;
    }
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
    public String getLastname() {
        return lastname;
    }
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getProgramme() {
        return programme;
    }
    public void setProgramme(String programme) {
        this.programme = programme;
    }
    public List<String> getCourses() {
        return courses;
    }
    public void setCourses(List<String> courses) {
        this.courses = courses;
    }
    private String firstname;
    private String lastname;
    private String email;
    private String programme;
    private List<String> courses;
    
}   

标签: javaapicrudrest-assured

解决方案


你可以试试杰克逊。不知道为什么 gson 不工作。

<dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-databind</artifactId>
     <version>2.10.3</version>
</dependency>

推荐阅读