我要检查DELETE响应。那么我应该让该员工参加此测试,还是应该将其放在其他位置(例如,使用方法之前)?
@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);
答案 0 :(得分:0)
如果您希望删除测试独立,那么可以,首先在此测试中创建用户,然后断言删除是可行的。逻辑上的先决条件是插入测试已经预先成功测试。
但是,我不一定建议您寻求使此删除测试独立。通常,在这种情况下,当您测试由API提供的CRUD操作时,进行具有逻辑顺序的集成测试是有意义的。如果您的API公开了插入,选择,删除,更新操作,则集成测试可以是以下测试顺序,顺序如下:
测试插入适用于用户123
测试选择有效并返回用户123
测试更新有效,并将用户123更新为用户234。可能在此测试中添加选择断言,并断言选择返回用户234
测试删除有效。可能添加一个选择断言,断言没有用户返回。
如果我正确地理解您只是在测试不同的CRUD操作,那将是我对测试类设计的建议。
@Before方法应用于设置测试的先决条件。如果您所有的测试都与同一位员工相关,则在此处创建您的员工是有意义的。否则,我会推荐我的集成测试方法。
让我知道这是否有帮助。