繁体   English   中英

如何在 java 方法中使用动态参数名称?

[英]How to use dynamic parameter name in java method?

首先我有这样的方法;

@When("^I send google-login-api with \"([^\"]*)\" token$")
    public void googleLoginApi(String googleTokenSuccess) throws IOException {

        String body = new String(Files.readAllBytes(Paths.get("src/test/resources/config/environments/googleLogin.json")));
        JSONObject jsonObject = new JSONObject(body);

        String googleToken = token.getString(googleTokenSuccess);
        jsonObject.put("token",googleToken);



        response = RestAssured.given()
                .baseUri(prp_url)
                .accept("application/json")
                .contentType("application/json")
                .queryParam("rememberMe","true")
                .body(jsonObject.toString())
                .when()
                .post("/auth/google")
                .then().assertThat().extract().response();
    }

我用小黄瓜风格称这种方法;

  Scenario: 3AF GoogleLoginSuccess
    When I send google-login-api with "google token success" token
    Then response status code should be 200
    Then response body "deviceInfo.name" is in "Firefox, Windows 10"

当我在 BDD 结构中调用具有不同名称的令牌时( When I send google-login-api with "google token success" token ),我希望方法参数名称也发生变化。 例如,当我使用 BDD 样式调用 xyz 令牌时,方法参数 String googleTokenSuccess 参数等于 xyz。

我不是这里的专家,但根据 文档,您可能想要执行以下操作:

@When("I send google-login-api with {string} token")
public void googleLoginApi(String googleTokenSuccess) throws IOException {
   // Here, googleTokenSuccess should be set to the value from the scenario
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM