Я не уверен, почему не работает замена. У меня есть запрос graphql:

mutation updateLocation{
  updateLocation(input: {
      address:"<address>",
      id:"<storeID>",
      name:"<name>",
      workingHours: [
                {
                closingTime:"<closingTime>",
                isClosed:false,
                openingTime:"<openingTime>"
                }
      .......

И в файле функций у меня есть это:

 Given def query = read ('classpath:graphQL/updateStore.graphql')
    * replace query.address = "<address>"
    * replace query.regionId = "<regionId>"
    * replace query.name = "<name>"
    * replace query.closingTime = "<closingTime>"
    * replace query.openingTime = "<openingTime>"
    * replace query.storeID = storeId
    And request { query : '#(query)'}
    When method post
    Then status 200



    Examples:
    |address            |regionId       |name        |closingTime   |openingTime    |
    |Adrs1              |286            |st1         |20:00         |10:00          |               

Замена работает для адреса, идентификатора региона и имени, но не работает для времени закрытия или времени открытия, эти два значения остаются пустыми.

Также, если я определю заголовок в фоновом режиме следующим образом:

Given header Authorization = 'Bearer ' + token

Мне все равно нужно добавлять эту строку для каждого запроса в одном и том же сценарии, или мне что-то не хватает?

2
senaid 16 Окт 2020 в 14:07

1 ответ

Лучший ответ

Работает для меня:

* def query = 'closingTime:"<closingTime>"'
* replace query.closingTime = '20:00'
* match query == 'closingTime:"20:00"'

Поэтому следуйте этому процессу: https://github.com/ intuit / karate / wiki / Как отправить проблему

Обратите внимание, что * replace query.closingTime = closingTime должен работать. Я рекомендую избегать путаницы, используя разные имена для столбцов Examples.

1
Peter Thomas 16 Окт 2020 в 15:10