Я могу что-то упустить, но есть одна проблема, которую я замечаю. У меня есть входная полезная нагрузка для тестируемой конечной точки, полученная из файла JSON. Вот входная полезная нагрузка:
{
"KJ01": {
"vin": "MMTestingVIN00001",
"sskwngtrghastsp": "20200419133000",
"wngdetail": [
{
"wngsysmbol": "WASH",
"wngclass": "S",
"wngcondflg": "1"
}
]
}
И это часть ответа, которую я получаю
{
"items": [
{
"vin": "MMTestingVIN00001",
"dealerCode": "1",
"nmscCode": "1",
"timestamp": "2020-04-19T13:30:00.000Z",
"warning": {
"warningLightType": {
"symbol": "WASH",
"type": "S",
"priority": "1"
}
}
}
]
}
Ответ содержит много объектов в массиве элементов, и я нахожу индекс массива число, где я получаю объект с VIN = MMTestingVIN00001 Итак, допустим, что требуемый объект ответов был найден по индексу 10 в массиве элементов.
Когда я делаю следующее:
* def Payload = read(datafile)
* json JsonPayload = Payload
# expecting WASH == WASH
* match response.items[foundAt].warning.warningLightType.symbol == JsonPayload.KJ01.wngdetail[0].wngsysmbol
выдает ошибку:
Could not parse token starting at position 7. Expected ?, ', 0-9, *
Но когда я явно упоминаю индекс № 10 в моем выражении соответствия на LHS, то есть
match response.items[10].warning.warningLightType.symbol == JsonPayload.KJ01.wngdetail[0].wngsysmbol
или я поменяю LHS на RHS, то есть вместо совпадения output == input, если я сопоставлю input == output, т.е.
match JsonPayload.KJ01.wngdetail[0].wngsysmbol == response.items[foundAt].warning.warningLightType.symbol
в обоих вышеописанных случаях, это работает.
Итак, в заключение, если мы выполним совпадение outputexpression == inputexpression, где у outputexpression есть индекс массива, на который ссылается переменная типа 'foundAt' ie, он имеет что-то вроде - items [foundAt], ему это не нравится и выдает ошибка.
As Обходной путь в таких случаях, когда мы даем соответствие inputexpression == outputexpression, тогда это работает.
Есть ли что-то, что мне не хватает здесь? Я прочитал документацию о том, какими должны быть LHS и RHS выражений совпадений, но не смог использовать эту информацию для изменения моих тестов.
Может кто-нибудь помочь мне, пожалуйста? Я надеюсь, что теперь я в порядке с моей проблемой.