我想检查删除响应。那么我应该在这个测试中成为员工还是应该在不同的地方(例如,在方法之前(?
@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);
如果您希望删除测试是独立的,那么是的,首先在此测试中创建用户,然后断言删除它是有意义的。合乎逻辑的先决条件是事先
已成功测试刀片测试。但是,我不一定建议您寻求使此删除测试独立。通常,在测试 API 提供的 CRUD 操作的情况下,使用逻辑顺序进行集成测试是有意义的。如果您的 API 公开插入、选择、删除、更新操作,则集成测试可以是以下测试序列,按以下顺序排列:
测试插件工作,用户 123
测试选择工作并返回用户 123
测试更新工作,并将用户123更新为用户234。可能在此测试中添加一个选择断言,并断言选择返回用户 234
测试删除工作。可能会添加一个选择断言,断言不返回任何用户。
这将是我对测试类设计的建议,如果我正确地理解你只是在测试不同的 CRUD 操作。
应使用 @Before 方法设置测试的先决条件。如果您的所有测试都与同一员工相关,则在此处创建您的员工是有意义的。否则,我会推荐我的集成测试方法。
让我知道这是否有帮助。