Как получить доступ к данным, созданным в одном методе @Test, в другом методе тестирования, но в другом классе - PullRequest
0 голосов
/ 06 ноября 2018
@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);
}

Мое требование - получить accessToken, сгенерированный в вышеупомянутом @Test методе, и передать его другому @Test методу, присутствующему в другом классе.

P.S .: Я должен делать этот процесс снова и снова, так как accessToken будет отличаться для разных пользователей и тестовых случаев.

1 Ответ

0 голосов
/ 06 ноября 2018

Вы все еще можете использовать обычные методы внутри ваших тестовых классов. Вместо использования метода @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'
}

Так что вам не нужно переписывать код, который запрашивает токен, а вместо этого использовать этот вспомогательный метод.

...