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

Spring集成5.1-集成流测试-dsl

申高卓
2023-03-14

我已经建立了一个简单的Spring集成流程,该流程由以下步骤组成:

  1. 然后定期轮询一个rest api
  2. 对有效载荷做一些处理
  3. 并将其置于Kafka主题上。

请遵守以下代码:

@Component
public class MyIntegrationFlow extends IntegrationFlowAdapter {
    @Override
    protected IntegrationFlowDefinition<?> buildFlow() {
        return from(() -> List.of("pathVariable1", "pathVariable2"), c -> c.poller(Pollers.fixedDelay(5, TimeUnit.SECONDS)))
                .split()
                .handle(httpRequest(), c -> c.advice(new RequestHandlerRetryAdvice()))
                .transform(Tranformers.fromJson(Foo.class))
                .filter(payload -> payload.isValid())
                .log()
                .transform(Tranformers.toJson())
                .channel(Source.OUTPUT); // output channel for kafka topic
    }

    private HttpMessageHandlerSpec httpRequest() {
        return Http.outboundGateway("http://somehost:8080/{pathVariable}")
                .httpMethod(GET)
                .uriVariable("pathVariable", Message::getPayload)
                .expectedResponseType(String.class);
    }
}

这非常有效,然而,我正在努力想出一些好的测试。

  • 我应该如何模拟外部RESTAPI

共有1个答案

鄢开诚
2023-03-14

问题太多,其中一些需要太广泛的解释。无论如何,我认为您可以从Spring集成测试框架及其文档开始。

>

我认为您可以考虑使用Spring Framework中的模拟MVC及其MockMvcClientHttpRequestFactory,基于HttpMessageHandlerSpec注入HttpRequestExecutingMessageHandler。

重试策略不起作用

好吧,我想同一个模拟MVCendpoint可以验证它被调用了多少次,并且在最初几次启动重试时失败。

如何更改消息

这正是Spring集成测试框架的一部分,它的MockIntegration.mockMessageSource()MockIntegrationContext:https://docs.spring.io/spring-integration/docs/5.1.6.RELEASE/reference/html/#mockintegration

进入Kafka主题?

或者你提到的模拟集成。mockMessageHandler()验证是否调用了Kafka的endpoint。或者使用Spring Kafka项目中的嵌入式Kafka:https://docs.spring.io/spring-kafka/docs/2.2.7.RELEASE/reference/html/#embedded-Kafka注释

 类似资料:
  • 主要内容:1. 项目依赖,2. Spring组件,3. TestNG + Spring在本教程中,我们将演示如何使用TestNG测试Spring的组件。 使用的工具 : TestNG 6.8.7 Spring 3.2.2.RELEASE Maven 3 Eclipse IDE 1. 项目依赖 为了演示,首先创建一个名称为:TestngSpringIntegration 的 Maven 项目。 要将Spring与TestNG集成,您需要包依懒,添加以下内容: 创建文件:pom.xml

  • 我用的是Spring靴。我的数据库属性存在于ApplicationItest.properties文件中。 如何做这两个测试?我必须使用的正确注释是什么?有人能举个例子吗?

  • 主要内容:集成测试背后的原因,集成测试技术,集成测试方法,集成测试指南集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。 集成测试背后的原因 虽然软件应用程序的所有模块已经在单元测试中进行了测

  • 设计 集成测试包括 3 个模块:测试用例、测试环境以及测试引擎。 测试用例 用于定义待测试的 SQL 以及测试结果的断言数据。 每个用例定义一条 SQL,SQL 可定义多种数据库执行类型。 测试环境 用于搭建运行测试用例的数据库和 ShardingSphere-Proxy 环境。 环境又具体分为环境准备方式,数据库类型和场景。 环境准备方式分为 Native 和 Docker,未来还将增加 Emb

  • 需要对Oauth2客户端的集成测试的帮助。 设置: 具有受保护UI和API的客户端 完成所有密码验证并检索访问令牌的身份验证服务器 集成测试: 放心用于终点测试 在实现Oauth2之前,测试工作良好 Ole测试示例: 问题: 如何使此测试再次工作? 应如何更改res-assured设置以支持OAuth2? 是否需要模拟身份验证服务器,或者是否可以注入/mock安全上下文?

  • 我试图为一个Spring引导项目写一个集成测试。不幸的是,我对实现感到困惑。 下面是已尝试的示例代码段 问题 我是否需要一个单独的,带有注释以支持集成测试