Я тестирую использование Cucumber для функционального/интеграционного тестирования в своей организации разработки и использую Citrus со стандартным клеем, который он предоставляет для тестирования API. Препятствие, с которым я столкнулся, заключается в том, как динамически изменять заданные переменные URL-адреса REST для сценария. Похоже, что эта возможность существует в Java DSL, но не раскрывается на шагах Cucumber. Я могу настроить citrus-http:client с заполнителями для системных свойств, но их, очевидно, необходимо разрешить, когда Spring загружает контекст приложения. То, что я хотел бы сделать в своем определении фонового сообщения, выглядит примерно так:
Given message todoListRequest
And <todoListRequest> header Content-Type is "application/json"
And <todoListRequest> header Accept is "application/json"
And <todoListRequest> uri is "/todo/${item-number}"
а затем в сценарии:
Scenario: Gets expected item for specified item number
Given variables
| item-number | 3 |
When <todoListClient> sends message <todoListRequest>
Then <todoListClient> should receive message <todoListResponse>
Имя хоста и порт службы все еще можно настроить в контексте приложения, а сконструированный URI добавить к этому значению для создания цели метода (в данном случае GET, хотя я не указал, и, возможно, это что-то еще, что необходимо добавлен?). Это кажется разумным? Очевидно, я мог бы написать свой собственный клей для этого, но я хотел посмотреть, есть ли готовые возможности для того, что кажется довольно очевидным сценарием REST, прежде чем идти по этому пути. Я понимаю, что интеграция с Cucumber появилась довольно недавно (начиная с версии 2.6?), поэтому она, возможно, все еще находится в стадии созревания. Это область, в которой я был бы заинтересован в помощи, если это приветствуется...
Спасибо