Как заставить интеграционные тесты Camel работать с @TestInstance.LifeCycle.PER_CLASS JUnit?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как заставить интеграционные тесты Camel работать с @TestInstance.LifeCycle.PER_CLASS JUnit?

Сообщение Anonymous »

Я разрабатываю интеграционные тесты для Camel с JUnit. Точнее, я использую следующую библиотеку: org.apache.camel:camel-test-spring-junit5:4.7.0. Интеграционные тесты работают нормально, когда для @TestInstance установлено значение TestInstance.LifeCycle.PER_METHOD:

Код: Выделить всё

@SpringBootTest
@CamelSpringBootTest
@TestInstance(TestInstance.Lifecycle.PER_METHOD)
@MockEndpoints("mllp:localhost:2575")
class GreetingsMllpRouterUnitTest {

@Autowired
private ProducerTemplate template;

@EndpointInject("mock:mllp:localhost:2575")
private MockEndpoint mock;

@Test
void whenSendBody_thenGreetingReceivedSuccessfully() {
var expectedResponse = "Hello World!";
mock.returnReplyBody(ExpressionBuilder.bodyExpression(String.class, func -> expectedResponse));
var resp = template.requestBody("mock:mllp:localhost:2575", "Hello Baeldung Readers 2!");
Assertions.assertEquals(expectedResponse, resp);
}
}

Однако, когда я изменяю @TestInstance так, чтобы для него было установлено значение TestInstance.LifeCycle.PER_CLASS (при прочих равных условиях), я получаю следующую ошибку:

Исключение произошло во время выполнения на бирже: Exchange[]
org.apache.camel.CamelExecutionException: Исключение произошло во время выполнения на бирже: Exchange []
в org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:45)
в org.apache.camel.support.ExchangeHelper.extractResultBody(ExchangeHelper.java:691)
в org.apache.camel.impl.engine.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:591)
в org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:182)
в org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:372)
в com.myapp.GreetingsMllpRouterUnitTest.whenSendBody_thenGreetingReceivedSuccessfully...

Как заставить тест работать с установленным флагом PER_CLASS?

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-lifecycl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»