如何在放心的测试用例中重用oauth2令牌

时间:2019-03-10 16:45:30

标签: java rest-assured

说我有一个这样的测试用例

given().
    auth().oauth2(API_TOKEN).
    param("name", "new name").
when().
     post(API_HOST + "/create").
then().
    statusCode(200);

按照此示例https://github.com/rest-assured/rest-assured/wiki/Usage#specification-re-use,我可以创建这样的方法

public static RequestSpecification setBaseUri() {
    RequestSpecBuilder builder = new RequestSpecBuilder();
    builder.setBaseUri(API_HOST);
    return builder.build();
}

现在测试用例变成这样

given().
    spec(setBaseUri()).
    auth().oauth2(API_TOKEN).
    param("name", "new name").
when().
     post("/create").
then().
    statusCode(200);

但是如何通过指定的API_TOKEN与oauth2一起传递auth,这样我也可以从所有测试用例中删除行 auth()。oauth2(API_TOKEN)

这还可以通过TestRule完成,以便甚至删除行spec(..)吗?

1 个答案:

答案 0 :(得分:0)

您可以像这样在规范中添加auth和param:

RequestSpecification requestSpec = new RequestSpecBuilder().
        setContentType(ContentType.JSON).
        addHeader("Authorization", "yourtoken").
        addParam(yor param). // or you can add body like set.body
        build();