Каратэ: динамический ввод значений из встроенных выражений в файл JSON - PullRequest
1 голос
/ 16 марта 2019
 * def mpRequestJson =
        """
        {
            "entity": '<entity>',
            "consent": {
                "PHONE": <updategetPhonePref>,
                "EMAIL": true,
                "POST": false,
                "SMS": <updategetSMSPref>
            },
            "notices": [{
                "title": "Privacy policy",
                "version": "NA"
            }],
            "source": "web"
        }
        """
        Given path '<entity>'
        And request mpRequestJson
        When method PUT
        Then status 200
        And match $.consent.PHONE == '<updategetPhonePref>'
        And match $.consent.SMS == '<updategetSMSPref>'

        Examples:
            |entity  | updategetPhonePref|updategetSMSPref|
            |xyz| #(updategetPhonePref)|#(updategetSMSPref)|

Если я хочу сохранить запрос JSON в файле JSON, а не в файле объектов, каким должен быть мой файл JSON?

1 Ответ

1 голос
/ 16 марта 2019

В JSON используйте встроенные выражения , например,

entity: '#(entity)'

Тогда вы можете прочитать его из файла:

* def mpRequestJson = read('my.json')

Но перед read вы должны инициализировать переменные, которые должны быть заменены. Таким образом, у вас будет несколько дополнительных строк.

* def entity = '<entity>'

Один из способов уменьшить лишние строки - создать временный JSON:

* def data = { entity: '<entity'>, phone: '<updategetPhonePref>' }

И тогда вы можете сделать это в JSON:

entity: '#(data.entity)'

Прочитайте документы по тестам, управляемым данными также, пожалуйста.

...