Приращение признака (карате)

Мне нужно создать котят, как в этом примере: https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/calltable/call-table.feature. Но мне нужно увеличивать имена вроде name1 and age1, name2 and age2, name3 and age3..., а не указывать имена и возраст котят в таблице. Как я могу это сделать? Благодарность


person cygne    schedule 02.11.2017    source источник


Ответы (1)


Когда вы call используете функцию с помощью массива JSON, который вызывает функцию в цикле внутри вызываемой функции, у вас есть доступ к специальной встроенной переменной с именем __loop.

См. Документацию здесь: Встроенные переменные для call

Таким образом, вы можете делать такие вещи, как { name: "#('Name' + __loop)" }

(править): очевидно, что приведенное выше было слишком запутанным: /, позвольте мне попробовать другое предложение. Посмотрите на этот пример: call-dynamic-json.feature

Вы можете увидеть, как можно на 100% контролировать создание котят в цикле вместо использования table. Всего наилучшего: P

person Peter Thomas    schedule 02.11.2017
comment
вау, спасибо за очень быстрый ответ. Извините, но я плохо понимаю: в функции A мне нужно увеличить котят и вызвать функцию B (createOneKitten.feature). В функции А как я могу остановить цикл. Я имею в виду, если я хочу создать 5 котят, как я могу это сказать? - person cygne; 02.11.2017
comment
отредактировал свой ответ, я думаю, это именно то, что вы искали. - person Peter Thomas; 02.11.2017
comment
отлично, он работает с call-dynamic-json.feature. Но после в Feature A мне нужно использовать Kit1. Как я могу извлечь это из * def kittensFn = """ function(count) { var out = []; for (var i = 0; i < count; i++) { out.push({ name: 'Kit' + i }); } return out; } """ Спасибо - person cygne; 02.11.2017
comment
посмотрите, он правильно возвращает массив JSON, поэтому просто обращайтесь к нему по индексу * def first = kittens[0] - пожалуйста, поговорите с кем-нибудь, кто понимает JS, прежде чем задавать эти вопросы. - person Peter Thomas; 02.11.2017
comment
Извините, я не заметил return out. Работает, большое спасибо - person cygne; 02.11.2017