Я предлагаю использовать message selectors
для решения этой проблемы. Сервер Citrus отправляет все входящие запросы на внутренний канал сообщений. Вы можете выбрать сообщение, явно формирующее этот канал, используя селекторы сообщений.
http().server(citrusHttpServer)
.receive()
.get(path)
.selector(Collections.singletonMap(HttpMessageHeader.HTTP_REQUEST_URI, "/Z/E/F/"))
Таким образом, вы всегда можете сначала получить запрос на /Z/E/F/
в своем тесте и ответить на него правильным ответом. После этого вы можете добавить второй прием, используя другой селектор, и предоставить правильный ответ на этот вызов.
Последовательность входящих запросов больше не связана с условиями гонки.
Не уверен насчет заголовка HttpMessageHeader.HTTP_REQUEST_URI
. Вам может понадобиться использовать полный URI запроса здесь в качестве значения.