В Karate DSL есть способ определить пользовательские ключевые слова для шага 'Given'

Я работаю над проектом DSL по карате. У меня есть 2 зависимые (A и B) транзакции SOAP, которые я тестирую. Первая транзакция, а именно A, должна быть завершена до моей второй транзакции B. Я могу выполнить это, вызвав файл функций A из B.

Мой текущий код выглядит так:

Background:
* url = https://www.abcshgda.com/service
* def result = call read(A.feature)

Scenario: B needs to run once the prerequisite A is completed.

Given request read(B_req.xml)
When soap action ''
Then status 200

Но на самом деле я хочу сделать что-то вроде этого:

Given A
When SOAP ''
Then status 200

Поскольку Karate - это DSL, есть ли способ сделать это без фактического использования предопределенного запроса ключевого слова и чтения XML запроса. Вместо этого попросите A сделать это в фоновом режиме.

Любая помощь приветствуется.


person Sheena    schedule 07.08.2018    source источник


Ответы (1)


Нет. Это обдуманное дизайнерское решение. Если вы хотите получить более подробную информацию, прочтите эту ветку: https://github.com/intuit/karate/issues/398

Каратэ, кажется, уже хорошо работает для вас, и я считаю, что вы не обязательно пытаетесь сделать его «более читабельным», но вы действительно ничего не получите от этого из моего опыта.

Лучшее, что вы можете сделать, это сделать это, если вы определили функцию JS (или утилиту Java), которая выполняет «A»:

Given eval myJsFunctionThatCallsA()
And request read('B_req.xml')
When soap action ''
Then status 200
person Peter Thomas    schedule 07.08.2018