java - 测试 Camel 应用程序时如何模拟 Amazon SQS 端点

标签 java spring-boot junit apache-camel

我正在编写一个使用 Camel 来监听 SQS 队列的 Spring Boot 应用程序。路线定义:

from("aws-sqs://my-s3-notification-queue" +
    "?amazonSQSClient=#sqsClient" +
    "&deleteAfterRead=false")
    .unmarshal().json(JsonLibrary.Jackson, S3EventNotification.class)
    .bean(s3NotificationHandler);

sqsClient 被定义为 @Configuration 文件中的 @Bean

运行测试时,我想模拟 SQS 端点,这样我就不会实际连接到 AWS。我该怎么做呢?我试过像这样编写测试

@RunWith(CamelSpringBootRunner.class)
@SpringBootTest
@MockEndpoints
public class ApplicationTests {

    @Test
    public void contextLoads() {
    }

}

如果我正确阅读文档,这应该可以工作,但它仍会尝试连接到 AWS。我错过了什么?

最佳答案

您可以使用 Localstack 使用它,您可以从本地系统模拟多个 AWS 服务,而无需连接 AWS。

关于java - 测试 Camel 应用程序时如何模拟 Amazon SQS 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51045131/

相关文章:

java - Maven 需要为托管依赖项指定插件版本 spring-boot-configuration-processor

java - 寻找单元测试的最佳实践? (如果不开发测试优先)

java - Struts 2.1 升级到 2.3.15.1 时出现的问题

java - 无法创建 tempDir。 java.io.tmpdir 设置为/tmp

java - java计算中数字和运算符的区分

Spring Security授权代码在获得用户同意后无法获取 token

junit - 如何在 Cypress.io 的 JUnit 报告中测试失败后附加屏幕截图

jpa - 如何在 JUnit 中正确使用 Bean 验证 (JSR-303)?

java - 使用 java.awt.image.BufferedImage 创建 BIFF8 BITMAP 记录需要很多时间 - 有没有更好的方法?

java - 检查网站是否存在