Как получить доступ к параметрам конфигурации каратэ в тестах JUnit? - PullRequest
1 голос
/ 09 мая 2019

Есть ли способ получить доступ к параметрам конфигурации из karate-config.js в тестах JUnit?

Пример:

Каратэ-config.js

function fn() {   
  var env = karate.env; // get java system property 'karate.env'
  karate.log('karate.env system property was:', env);
  if (!env) {
    env = 'dev'; // a custom 'intelligent' default
  }
  var config = { // base config JSON
    appId: 'my.app.id',
    appSecret: 'my.secret',
    someUrlBase: 'https://some-host.com/v1/auth/',
    anotherUrlBase: 'https://another-host.com/v1/'
  };
  if (env == 'stage') {
    // over-ride only those that need to be
    config.someUrlBase = 'https://stage-host/v1/auth';
  } else if (env == 'e2e') {
    config.someUrlBase = 'https://e2e-host/v1/auth';
  }
  // don't waste time waiting for a connection or if servers don't respond within 5 seconds
  karate.configure('connectTimeout', 5000);
  karate.configure('readTimeout', 5000);
  return config;
}

MyTest.java

public class MyTest {

    @Test
    public void test() {
        // How to access e.g. config.appId?
    }
}

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Но почему!?

Есть несколько способов, но сначала - может быть, вы слишком перегружены и обратите внимание, что в каратэ можно прочитать файл *.properties: properties.feature

Вы также можете создать файл объектов с одним пустым сценарием и вызывать его из Java API: https://github.com/intuit/karate#java-api

Map<String, Object> result = Runner.runFeature('classpath:foo.feature', null, true);

Что даст вам значения config в возвращенном Map.

0 голосов
/ 09 мая 2019

если вам нужно вызывать внешние функции javascript из java-кода, я предлагаю вам взглянуть на this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...