Как смоделировать существующие конечные точки в среде CDI? - PullRequest
0 голосов
/ 10 июля 2019

Я не могу утверждать на поддельных конечных точках.Я использую инъекцию JUnit и CDI в контейнере WildFly с маршрутами Java DSL.

  • Я создаю тестовый класс, расширяющий CamelTestSupport
  • Я внедряю поле CamelContext, чтобы использовать его для остановки различных компонентови для использования совета
  • я установил useadvic с, чтобы контекст не запускался сам по себе
  • тестовый класс наследовал контекст типа ModelCamelContext, который, кажется, не имеет отношения к моему введенному полю CamelContext
  • все маршруты создаются в введенном поле CamelContext, а не в унаследованном ModelCamelContext
  • , однако весь механизм насмешки CamelTestSupport использует исключительно внутренний контекст ModelCamel

.... так что, что бы я ни издевался, это НЕ то, что я советую :), и все утверждения по праву терпят неудачу.

@RunWith(Arquillian.class)
public class MyTest extends CamelTestSupport {
  @Override
  public boolean isUseAdviceWith() {
    return true;
  }

  @Inject
  private CamelContext camelContext;

  @Test
  public void someTest() {
    camelContext.getRouteDefinition("routeid").adviceWith(camelContext,
      new AdviceWithRouteBuilder() {
        @Override
        public void configure () throws Exception {
          mockEndpoints();
        }
      });
    Collection list = context.getEndpoints(); // the ModelCamelContext is always empty, looks bad
    Collection list2 = camelContext.getEndpoints(); // has both route endpoints AND mocks, looks good
    getMockEndpoint("mock:someid").expectedMessageCount(1); // will always CREATE a new endpoint in the empty modelcamelcontext
    getMockEndpoint("mock:someid", false).expectedMessageCount(1); // will always crash, that endpoint ID is in the other context...

Я бы отказался от введенного CamelContext, но все маршруты создаются только там, я не могу сказать, почему.Контекст ModelCamelContext в CamelTestSupport ВСЕГДА пуст, есть кое-что, что я инициализирую иначе / неправильно, но я не могу сказать, что.Кто-нибудь успешно использовал тест Camel CDI с макетами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...