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

Spring集成Java DSL:如何在JUnit中运行集成流?

徐佐
2023-03-14

如何在下面的JUnit类中运行integrationFlow?目前出现了例外情况

java.lang.AssertionError: Further request(s) expected leaving 1 unsatisfied expectation(s). 0 request(s) executed.

因为整合流没有启动。

JUnit类:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@DirtiesContext
public class FlowTest {
private final RestTemplate restTemplate = new RestTemplate();

private MockRestServiceServer mockServer;

@Before
public void setup() {
    mockServer = MockRestServiceServer.createServer(restTemplate);
}

@Test
public void test() {
    mockServer.expect(requestTo("http://localhost:8080/data"));

    final IntegrationFlow integrationFlow = f -> f
            .handle(Http.outboundGateway("http://localhost:8080/data", restTemplate).httpMethod(HttpMethod.GET)
                    .expectedResponseType(String.class));

    mockServer.verify();
}

}

共有1个答案

云利
2023-03-14

您不能仅仅在测试方法中定义这样的流;框架必须在幕后进行大量组装。

将流定义为测试@Configuration类中的@Bean

 类似资料:
  • 我有一个用V3.4.0(使用Gradle)生成的Jhipster。 我正在尝试从STS运行和调试单元测试。 来自文档: 更新 我已经根据https://jhipster.github.io/configuring-ide-eclipse-gradle/:

  • 在spring integration (Java DSL)中,如何定义一个完整流程的事务? 通过Spring集成,我们可以定义一个示例流程: 我需要一个跨度整个流程的交易。目前,当我使用“aMessage转换器”访问数据库时,事务将在处理完此消息转换器后关闭。但是我需要一个在处理“另一个消息转换器”时仍未提交的事务? 我希望只需添加一个“@Transactional”(或@Transaction

  • null 如何在transform()步骤中添加Jaxb2Marshaller?

  • 下面的配置位接受一个HTTP POST,其中包含一个要创建的用户实例的JSON请求体,但如果我能让它返回一个创建的

  • JUnit是基于Java的开发的常用单元测试框架。 它易于使用且易于扩展。 有许多JUnit扩展可用。 如果您不熟悉JUnit,请从www.junit.org下载并阅读其手册。 本章介绍如何使用Ant执行JUnit测试。 Ant通过JUnit任务直接进行。 JUnit任务的属性如下所示 - Sr.No. 属性和描述 1 dir 从哪里调用VM。 禁用fork时会忽略此项。 2 jvm 用于调用JV

  • 在本章中,我们将学习如何将JUnit和EasyMock集成在一起。 这里我们将创建一个Math Application,它使用CalculatorService来执行基本的数学运算,例如加法,减法,乘法和除法。 我们将使用EasyMock来模拟CalculatorService的虚拟实现。 此外,我们广泛使用注释来展示它们与JUnit和EasyMock的兼容性。 下面以逐步的方式讨论该过程。 St