java - 如何将一个@Test方法中生成的数据访问到另一个测试方法但在不同的类中

标签 java testng rest-assured

@Test(description = "Generate access token")
    public void AuthenticationApiTC_30() throws IOException, SQLException {

    Map<String, String> positiveDataMap = operations.readRecordFromXls(XLSPATH, FILENAME, POSITIVESHEET);
    AuthenticateBuilder builder = new AuthenticateBuilder();
    Response response = REQUEST
            .headers(builder.authHeaderBuilderForGetReq(positiveDataMap.get("mobilenumber"),
                    positiveDataMap.get("ssoToken"), positiveDataMap.get("osVersion"),
                    positiveDataMap.get("deviceID"), positiveDataMap.get("imsi"),
                    positiveDataMap.get("deviceIDType"), positiveDataMap.get("applicationID"),
                    positiveDataMap.get("version"), positiveDataMap.get("os")))
            .basePath(BASEPATH)
            .get();

    log.info("AuthenticationApiTC_30\n" + response.prettyPrint());
    PostValidators.checkMessageInResponse(response, SuccessMessage.Success);
    accessToken =  Utils.extractDataFromResponse(response, "result.accessToken");
    log.info("Token string :: " + accessToken);
}

我的要求是获取在上述@Test 方法中生成的accessToken,并将其传递给不同类中存在的另一个@Test 方法。

P.S :我必须一次又一次地执行此过程,因为 accessToken 对于不同的用户和测试用例会有所不同。

最佳答案

您仍然可以在测试类中使用普通方法。您可以创建一个静态辅助方法,只为您的某些测试方法调用该方法,而不是使用在每个测试方法上调用的 @Before 方法。所以你可以这样做:

public static Foobar requestToken() {
    // ...
}

@Test
public void someTestMethod() {
    Foobar x = TestClass.requestToken();

    // work with 'x'
}

@Test
public void someOtherTestMethod() {
    Foobar x = TestClass.requestToken();

    // do other test with 'x'
}

因此您无需重写任何请求 token 的代码,而是使用此辅助方法。

关于java - 如何将一个@Test方法中生成的数据访问到另一个测试方法但在不同的类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53166897/

相关文章:

java - 如何正确配置这个Camel路由xml?

java - 如何让@BeforeClass 在 Spring TestContext 加载之前运行?

java - 无法使用 TestNG Selenium 实例化类

java - 如何仅使用一个 Web 驱动程序实例在 testng 套件中运行多个测试类?

java - RestAssured 不遵守 Quarkus 中的 ObjectMapper 配置

java - 在android中通过蓝牙发送文件时出错?

Java 8 Date API - 获取一个月的总周数

java - 为什么这个 Java 8 方法引用不适用于 System.out.println(LocalDate::now);?

java - 如何将字符串转换为编码格式

放心 vs cucumber