Citrus-Framework - обработка параметров для пользовательских действий - PullRequest
0 голосов
/ 06 ноября 2018

Чтобы решить проблему, описанную здесь: Citrusframework - действие Java - Получить результат , я создал Custom-Action, которая в основном оборачивает Java-Call, чтобы предоставить мне опции внутри моего Java-кода для проверки Результат Java-программы как мне нужно.

Но перенести параметры / переменные из Test-Case в Java-программу сложно. Мне нужно вызывать эту программу - раз во время теста и каждый раз, с разными параметрами. Итак, я добавил следующее перед вызовом пользовательского действия:

variable("param1", "myValue1");
variable("expectedReturnCode", "0");
action(myCustomAction);

Позже в тесте, после некоторых других действий, я хочу это так:

variable("param1", "myValue2");
variable("expectedReturnCode", "99");
action(myCustomAction);

В моем классе Custom-Action у меня есть следующее:

String param1 = context.getVariable("param1");
expectedReturnCode = Integer.parseInt(context.getVariable("expectedReturnCode"));

Проблема в том, что Text-Context не заполняется до вызова Custom-Action. Кажется, что Context устанавливается полностью до вызова первого действия, поэтому даже первое CustomAction получает 99 в качестве ожидаемого RC ,

Итак, мой вопрос будет таким: Как я могу перенести отдельные параметры в свое пользовательское действие?

1 Ответ

0 голосов
/ 07 ноября 2018

Не используйте variable(), так как он используется только для инициализации переменных до запуска теста. Вот почему ваш второй вызов немедленно перезаписывает значение переменной. variable() только для настройки в самом начале теста.

Вместо этого вы должны использовать createVariable(String variableName, String value), которое выполняется как тестовое действие в вашем тестовом примере во время выполнения.

...