当前位置: 首页 > 知识库问答 >
问题:

Spring-Cloud-Stream集成测试,如何确保应用资源不被使用

龚昊然
2023-03-14
  @Test
  public void echoTransformTest() {
    try (ConfigurableApplicationContext context =
        new SpringApplicationBuilder(
              TestChannelBinderConfiguration.getCompleteConfiguration(DataflowApplication.class))
            .properties(new Properties())
            .run("--spring.cloud.function.definition=echo")) {
      InputDestination source = context.getBean(InputDestination.class);
      OutputDestination target = context.getBean(OutputDestination.class);

      GenericMessage<byte[]> inputMessage = new GenericMessage<>("hello".getBytes());

      source.send(inputMessage);
      assertThat(target.receive().getPayload()).isEqualTo("hello".getBytes());
    }
  }

共有1个答案

李疏珂
2023-03-14

我通过以下操作解决了这个问题:

SpringBootTest(properties = {"spring.cloud.stream.function.definition=reverse"})
@Import(TestChannelBinderConfiguration.class)
public class EchoTransformerTest {

  @Autowired private InputDestination input;

  @Autowired private OutputDestination output;

  @Test
  public void testTransformer() {
    this.input.send(new GenericMessage<byte[]>("hello".getBytes()));
    assertThat(output.receive().getPayload()).isEqualTo("olleh".getBytes());
  }
}

并将application.yml添加到test/resources中,这样可以确保我们不会读取src/resources应用程序属性。

另一种方法是显式定义@testpropertysource(locations=“test.yml”)

 类似资料:
  • 我有一个基于maven的J2EE项目。此项目包含到数据库的连接,该连接是通过资源设置的。xml和持久性。xml。正常部署时,连接工作正常。 我的问题是,我想运行嵌入式TomEE服务器进行集成测试。对于这些测试,我需要使用内存数据库。 要启动TomEE,我使用如下所示的maven插件组合。 当我启动maven goal mvn安装时,服务器按预期运行,但数据库连接错误。我没有找到方法,如何设置,我需

  • 我不确定我的理解是否正确。我们启动了一个Spring云流应用程序并订阅了一个主题。该应用程序将运行并暂停该主题以获取新消息,除了我们发送终止信号退出。我在想我们是否可以明确退出Spring云应用程序,比如等待5分钟但没有新消息进来?或者处理了1000条记录并退出?

  • 问题内容: 当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。 我如何才能使Maven使用测试资源而不是主要资源? 编辑:我使用Classloader查找我的资源。Classloader可以从我的src / test / resources目录中找到资源,但是它首先在src / main / java中查找该资源。 还是在运行将

  • 场景:我有3个Spring Cloud流媒体应用程序 1'st:将XML有效负载解组为JAXB对象 2'nd:将JAXB有效负载转换为我们的域POJO 3'rd:验证域对象 我正在尝试测试第三个应用程序。我已将第一个和第二个应用程序作为测试依赖项。我添加了: 现在,我有大约20个xml文件,其中包含各种验证场景。第一个测试运行良好。我能够通过以下方式获取频道的预期消息: 运行的第二个测试是我有问题

  • 下面是集成测试类: Junit Contole跟踪错误:

  • 我正在尝试将spring cloud stream与spring cloud函数webflux集成 https://cloud.spring.io/spring-cloud-static/spring-cloud-function/1.0.0.release/single/spring-cloud-function.html 从cloud stream中,我可以看到源代码需要定义为供应商https