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 楼答案
如果希望删除测试是独立的,那么是的,首先在此测试中创建用户,然后断言删除它是有效的。逻辑先决条件是插入测试事先已成功测试
然而,我不一定建议您寻求使这个删除测试独立。通常,在这样的情况下,您正在测试由API提供的CRUD操作,因此有必要使用逻辑顺序进行集成测试。如果API公开了insert、select、delete和update操作,则集成测试可以是以下测试序列,顺序如下:
测试插入工作,用户123
测试选择工作并返回用户123
测试更新工作,并将用户123更新为用户234。可能在此测试中添加一个select断言,并断言select返回用户234
测试删除工作。可能会添加一个select断言,断言不返回任何用户
如果我正确理解您只是在测试不同的CRUD操作,那么这将是我对测试类设计的建议
@Before方法应用于设置测试的先决条件。如果您的所有测试都与同一名员工相关,那么在此处创建您的员工是有意义的。否则,我会推荐我的集成测试方法
让我知道这是否有帮助