Модульный тест для агрегированного приложения весеннего облачного потока

Я после модульного теста для агрегированного приложения весеннего облачного потока, основной метод выглядит следующим образом:

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        new AggregateApplicationBuilder(MyApplication .class, args)
                .from(MyProcessor.class)
                .via(MyFilterProcessor.class)
                .run();
    }
}

В модульном тесте я отправляю сообщение через процессор, как показано ниже, но вызывается только MyProcessor. Если я разверну это агрегированное приложение через сервер потока данных, все будет работать так, как ожидалось.

пожалуйста, порекомендуйте

 @RunWith(SpringJUnit4ClassRunner.class)
  @SpringBootTest( classes = {
                    MyApplication .class,
                })
  @DirtiesContext
   public class AggTest{
    @Autowired
    private Processor processor;

    @Autowired
    protected MessageCollector messageCollector;

    @Test
      public void testMethod(){
        processor.input().send(message);
        messageCollector.forChannel(processor.output()).poll();
     }
    }

person Alexander.Furer    schedule 29.11.2016    source источник


Ответы (1)


Я добавил https://github.com/spring-cloud/spring-cloud-stream/issues/723, чтобы отслеживать это.

Тестируемое приложение нужно настроить как агрегат — так же, как это делает метод main. Однако в этом случае не так просто получить доступ к входному каналу и отправить сообщение. Боюсь, это блокировщик, но, надеюсь, мы скоро это исправим.

person Marius Bogoevici    schedule 29.11.2016