Верблюд и огурец-джунит игнорируют @UseAdviceWith

Cucumber @RunWith(Cucumber.class) игнорирует @UseAdviceWith в моем классе шагов. В результате контекст Camel всегда запускается, и я не контролирую, когда он должен начаться.

Чтобы преодолеть это, я делаю:

@RunWith(Cucumber.class)
@CucumberOptions(
        plugin = {"pretty", "html:target/cucumber"},
        features = {"blabla/feature"},
        glue = {"blabla.steps"})
public class TestRunner
{
  @BeforeClass
  public static void setUp()
  {
    SpringCamelContext.setNoStart(true);
  }
}

@Slf4j
//@UseAdviceWith - Ignored by Cucumber
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class BlablaSteps {

  @Before()
  public void beforeScenario(Scenario scenario) throws Exception
  {
    SpringCamelContext.setNoStart(false);
    camelContext.start();
 }
}

Есть ли лучший способ сделать это? Более декларативный?

Я думаю, что должен быть тест, подобный тому, который использует Cucumber и @UseAdviceWith, вручную запуская контекст верблюда: https://github.com/apache/camel/blob/master/components/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/mockendpoints/AdviceWithTest.java

зависимости:

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-spring</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>

и верблюд:

<camel-version>2.22.0</camel-version>

0 ответов

Другие вопросы по тегам