有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使这个删除测试独立?

我想检查删除响应。所以,我应该让员工参加这个测试,还是应该在不同的地方(例如,在方法之前)

      @Test(description="positive")
public static void deleteEmployeeEducation()       
    Response res= given().
                      spec(Specifications.getRequestSpecAsEmpl()).              
        body(Payloads.addEmployeeEducation("GGGG","ingieneer",2005,2010)).
                      when().
                      put(Endpoints.createEmployeeEducation()).
                      then().log().all().extract().response();
    JsonPath js= ReusableMethods.rawToJson(res);
    Integer  educationId=js.get("[0].id");

        given().
                spec(Specifications.getRequestSpecAsEmpl()).
                delete(Endpoints.deleteEmployeeEducation()+educationId).
                then().log().all().
                assertThat().statusCode(204);

共 (1) 个答案

  1. # 1 楼答案

    如果希望删除测试是独立的,那么是的,首先在此测试中创建用户,然后断言删除它是有效的。逻辑先决条件是插入测试事先已成功测试

    然而,我不一定建议您寻求使这个删除测试独立。通常,在这样的情况下,您正在测试由API提供的CRUD操作,因此有必要使用逻辑顺序进行集成测试。如果API公开了insert、select、delete和update操作,则集成测试可以是以下测试序列,顺序如下:

    • 测试插入工作,用户123

    • 测试选择工作并返回用户123

    • 测试更新工作,并将用户123更新为用户234。可能在此测试中添加一个select断言,并断言select返回用户234

    • 测试删除工作。可能会添加一个select断言,断言不返回任何用户

    如果我正确理解您只是在测试不同的CRUD操作,那么这将是我对测试类设计的建议

    @Before方法应用于设置测试的先决条件。如果您的所有测试都与同一名员工相关,那么在此处创建您的员工是有意义的。否则,我会推荐我的集成测试方法

    让我知道这是否有帮助