Как передать несколько параметров для вызова Single karate на karate-config.js - PullRequest
1 голос
/ 02 июля 2019

У меня есть файл .feature, который будет получать аргумент из другого файла функций как __arg для генерации токена для oAuth

 Given url urlRefreshToken
 Given def json = __arg
 And header Content-Type = 'application/json; charset=utf-8'
 And request json
 * header Authorization = 'Bearer' + __arg.refresh_token
 When method POST
 Then status 200
 * def bearer = 'Bearer ' + response.access_token

Я пытаюсь централизовать генерацию токенов только один раз на karate-config.js. Однако я не могу использовать karate.callSingle () с переданными параметрами.

Я использую файл функций для генерации токена в других файлах функций:

* def getToken = call read('classpath:features/Utils/GetToken.feature') refreshTokenRaymond
* header Authorization = getToken.bearer

Я пытаюсь вызвать файл функции для генерации токена на karate-config.js, но безрезультатно. Я попытался передать дополнительный параметр, подобный этому, на karate-config.js:

var config = {
    baseUrl: 'url',
    urlRefreshToken: 'url',
    refreshToken: '{refreshToken: refreshToken}'
  };
var token = karate.callSingle('classpath:features/Utils/GetToken.feature', [config, config.refreshToken])

Интересно, можно ли передать несколько параметров в karate.callSingle(), вызываемый из karate-config.js?

Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

2 голосов
/ 02 июля 2019

call и karate.callSingle() принимают только один аргумент, но вы можете легко создать новый JSON из других JSON. На самом деле, поскольку вы, кажется, передаете config в качестве аргумента - вы можете легко получить доступ к config.refreshToken как __arg.refreshToken.

Ваш код очень сбивает с толку - но надеюсь, что этот совет вам поможет:

Given def json = __arg.refreshToken

Если вам нужно создать JSON из других данных - я думаю, вы уже знаете, как это сделать:

var temp = { config: config, refreshToken: refreshToken };
var token = karate.callSingle('classpath:features/Utils/GetToken.feature', temp);
...