Как выполнить шаг в зависимости от условия из предыдущего ответа - PullRequest
2 голосов
/ 08 ноября 2019

Hey Karate DSL Community - мне было интересно, кто-нибудь может помочь мне понять, как выполнить определенный шаг теста в сценарии, основываясь на предыдущем значении ответа (условная логика). Прочитав документацию, я увидел, что это возможно с файлами функций, но мне также было интересно, как сделать это элегантно в сценарии.

Ниже я попытаюсь объяснить, чего я хочу достичь.

Given path '/games/list'
When method get
Then status 200
And def response = {"games":[{"gameId":"3431572","gameStatus":"RELEASED","releaseDate":"2018-10-31"}]}
And match response.games == '#[]'

Given path '/games/action'
And request {"game":{"gameId":"3431572","gameStatus":"RELEASED","releaseDate":"2018-10-31"},"gameAction":"DOWNLOAD"}
When method post
Then status 200

Если response.game.gameStatus == 'UNRELEASED', то я хотел бы проанализировать request.gameAction = 'PREORDER'

, в противном случае, если response.game.gameStatus == 'RELEASED', тогда я хотел бы проанализировать request.gameAction = 'DOWNLOAD'

Пожалуйста,дайте мне знать, если вам требуется дополнительная информация. Я считаю, что использование set может работать здесь с некоторыми функциями JavaScript?

1 Ответ

0 голосов
/ 09 ноября 2019

Звучит просто для меня:

* def payload = {}
* def lookup = { UNRELEASED: 'PREORDER', RELEASED: 'DOWNLOAD' }
* payload.gameAction = lookup[response.game.gameStatus]
# ...
* request payload
...