如何使此删除测试独立?



我想检查删除响应。那么我应该在这个测试中成为员工还是应该在不同的地方(例如,在方法之前(?

@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 方法设置测试的先决条件。如果您的所有测试都与同一员工相关,则在此处创建您的员工是有意义的。否则,我会推荐我的集成测试方法。

让我知道这是否有帮助。

最新更新