тесты цитрусовых, огурцов или цитрусовых / xmlDSL - PullRequest
0 голосов
/ 26 сентября 2018

Я сейчас использую цитрусовую раму, интегрированную с огурцом.Я думаю изменить XML DSL (или Java DSL).Должен ли я добавить шаблон для каждого отдельного проверенного файла (xml или json)?И связать их?

Мои тесты должны сравнивать два файла или больше.Я могу просто указать путь к файлам тезисов (я видел, что примеры только о сообщениях ...)?

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 04 октября 2018

Если вы хотите использовать 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, они помогут вам получить более динамические данные тестов.

...