Если вы хотите использовать Cucumber BDD с Citrus, вы должны использовать Java DSL, поскольку он интегрирован в написание классов определения шагов Cucumber.Конечно, в методе определения шага вы можете загружать шаблоны из файловой системы или пути к классам.Допустим, в вашей спецификации BDD есть следующая строка:
When user adds entry "path/to/template.txt"
Вы можете использовать путь в своем определении шага в качестве параметра метода и загрузить шаблон из файловой системы или пути к классам.
@When("^user adds entry \"([^\"]*)\"$")
public void add_entry(String path) {
designer.http()
.client(todoClient)
.send()
.post("/todo")
.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.payload(new ClassPathResource(path));
}
Конечно, вы также можете делать это при получении и проверке сообщений с помощью шаблонов файлов.
В случае, если вы используете тесты чистого XML без Cucumber, вы можете просто указать путь к файлу в операции отправки / получения.
<testcase name="TodoList_Post_IT">
<actions>
<http:send-request client="todoClient">
<http:POST path="/todo">
<http:headers content-type="application/x-www-form-urlencoded"/>
<http:body>
<http:resource file="path/to/template.txt" />
</http:body>
</http:POST>
</http:send-request>
</actions>
</testcase>
Это работает для Http и всех других транспортов сообщений (JMS, WebSocket, SOAP WebServices, ...).
Вы также можете использовать тестовые переменные в файлах шаблонов для их повторного использования внесколько тестовых случаев.Посмотрите на тестовые переменные в Citrus, они помогут вам получить более динамические данные тестов.