Любой пример, чтобы иметь экземпляр класса java для однократного вызова и использования во всех сценариях ios в карате с различными файлами функций - PullRequest
1 голос
/ 09 мая 2020

Я использовал класс DBUtils из демонстрации карате, я знал, что этот класс не имеет ничего общего с карате. У меня есть проблема, например, в приведенном примере класс DBUtlis вызывается в фоновом режиме для каждого сценария, и его следует упомянуть во всех файлах функций. Фон :.

Все, что мы настраиваем один раз и используем эту переменную экземпляра БД во всех сценариях ios ?? Если да, пожалуйста, примеры.

Обновление после комментария Петра ниже:

config: enter image description here

Главный файл функции: enter image description here

Повторное использование экземпляра БД в другом файле функции

enter image description here

Пожалуйста, подтвердите, правильный ли это подход или нет?

Dry Выполнить для строки:

var result = karate.callSingle('classpath:featureFiles/dbBackground.feature', config);

  config.PersonName = result.name;

Основная функция:

Feature: DB Background

Background:
    * def name = "Sandeep";

Другая функция:

Feature: Get Account Details

Background:

    * def actualname = PersonName;

@golden
Scenario: user 1 details
 * def expectedFormat = read('../requestFiles/format.json')

        Given url 'https://reqres.in/api/users'
        And params ({id: '1'})
        When method Get
        Then match response.data.email == "george.bluth@reqres.in"
        Then print '###################################name is: ', actualname
        Then print '###################################name is: ', PersonName

Результат консоли с нулевым значением:

enter image description here

Обновлено Dry запуск 2:

Feature: DB Background

Background:

    * def name = "Sandeep";

    @golden
Scenario: user sample details
 * def expectedFormat = read('../requestFiles/format.json')

        Given url 'https://reqres.in/api/users'
        And params ({id: '1'})
        When method Get
        Then match response.data.email == "george.bluth@reqres.in"

вывод:

19:31:33.416 [ForkJoinPool-1-worker-0] DEBUG com.jayway.jsonpath.internal.path.CompiledPath - Evaluating path: $['data']['email']
19:31:33.416 [ForkJoinPool-1-worker-0] INFO com.intuit.karate - [print] ###################################name is:  Sandeep
19:31:33.432 [ForkJoinPool-1-worker-0] INFO com.intuit.karate - [print] ###################################name is:  Sandeep

1 Ответ

1 голос
/ 09 мая 2020

Да, вы можете инициализировать его в karate-config.js, и тогда это будет глобальная переменная.

Также посмотрите karate.callSingle(): https://github.com/intuit/karate#hooks

...