match - объединение значений из API - PullRequest
0 голосов
/ 08 января 2020
* def a2Company = get a2Names $..companyName //["TEST ABC"]
* def a1Company1 = get a1Names $..companyName1 //["TEST"]
* def a1Company2 = get a1Names $..companyName2 //["ABC"]
* def a1Company = a1Company1 + a1Company2 // ["TEST"]["ABC"]
* match a2Company contains a1Company1 // this fails  

Я сравниваю два API, и для одного из значений в api 2 - это комбинация из 2 значений из api1

Вышеприведенное, похоже, не работает, я пробовал с javascript с concat, но это же выпуск

Любая помощь приветствуется!

1 Ответ

1 голос
/ 09 января 2020

match x contains y работает с типами x и y. Если эти два типа array, то содержит означает, что массив x содержит все значения массива y.

Пример:

    Scenario: Contains with arrays
    * def x = ["test", "abc"]
    * def y = ["test"]
    * def z = ["abc"]
    * match x contains y
    * match x contains z

Если x и y - это строки, то есть означает, что строка y находится в x, x содержит y. Имеет ли это смысл?

Пример:

  Scenario: Contains with string
    * def x = "test abc"
    * def y = "test"
    * def z = "abc"
    * match x contains y
    * match x contains z

Вы пытаетесь смешать эти вещи. У вас есть массивы, но вы хотите применить строку содержит значения массива. Это не работает, потому что каратэ не знает, что вы хотите применить содержит значения одного массива.

Обходной путь может быть:

  Scenario: Test array value contains string
    * def x = ["test abc"]
    * def y = ["test"]
    * match x[0] contains y[0]

это тебе поможет?

...