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

使用Apache Camel进行Spring Boot应用程序的单元测试中无法获取@Component作为Bean

吕胤
2023-03-14

我正在用Camel为我的Spring Boot应用程序做单元测试。当应用程序运行时,它可以得到配置为@Component的bean

@Component("agencyExporterProcessor")
public class AgencyExporterProcessor {}

我得到的豆子是这样的:

 from(getTriggerExportEndpoint())
            .routeId(getTriggerExportId())
            // When shutting down, Camel will wait until the batch completed
            .shutdownRunningTask(ShutdownRunningTask.CompleteAllTasks)
            .log("[SamCustomExporter] - RouteId:${routeId} - Begin at ${date:now:MM/dd/yyyy HH:mm:ss.SSS}")
            .setHeader(Messaging.Names.SAM_DATA_AGENCY_CONFIGURATION_HEADER_KEY.toString(), constant(getConfiguration()))

            // Initialize a list to store exported CSV file names
            .bean(agencyExporterProcessor, "prepareExportedFileList")

但当我进行测试时,该路径无法获取bean“

org.apache.camel.FailedToCreateRouteException: Failed to create route agencyExporterRoute_triggerExport at: >>> Bean[ref:agencyExporterProcessor method:prepareExportedFileList] <<< in route: Route(agencyExporterRoute_triggerExport)[[From[direct:agency... because of No bean could be found in the registry for: agencyExporterProcessor

这是我如何配置我的单元测试类:

@DirtiesContext
@RunWith(SpringRunner.class)
@EnableAutoConfiguration
@SpringBootApplication
@SpringBootTest(classes = SamCustomExporterSpringApplication.class, 
webEnvironment = SpringBootTest.WebEnvironment.NONE)
public class AgencyExporterRouteTest extends BaseRouteTestSupport {}

请给出建议!!!!非常感谢

共有1个答案

苏凯
2023-03-14

您应该在驼峰路径中将bean名称称为字符串值:

.bean("agencyExporterProcessor", "prepareExportedFileList")

 类似资料:
  • 我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是

  • 我想测试我的SpringBoot应用程序,它使用cassandra作为CrudRepository。我最终得到了 具有 和 这就导致了 如果我使用旧版本的cassandra-unit-Spring 它以NullPointerException结束,因为没有注入值repo。 来源https://github.com/StephanPraetsch/spring.boot.cassandra.unit

  • 使用 GWT 更轻松地测试异步应用程序 您可能从编写 Ajax 应用程序中获得了极大乐趣,但是对它们执行单元测试却着实让人头痛。 在本文中,Andrew Glover 着手解决 Ajax 的弱点(其中之一),即应对异步 Web 应用程序执行单元测试的固有挑战。 幸运的是,他发现在 Google Web Toolkit 的帮助下,解决这个特殊的代码质量问题要比预想的容易。 Ajax 在近期无疑是 W

  • 注意:我使用()而不是尖括号 我有一个MVP android应用程序,它使用Retofit2和RxJava2从GitHub Api获取数据。代码运行良好,我能够恢复一个可观察的(响应(列表(头)),其中响应来自Reformation2,头来自OkHttp3。 但是当涉及到单元测试时,我遇到了一个问题:我无法模拟响应(List(Headers))。Retrofit2响应类有一个私有构造函数,所以我无

  • 我一直试图用robotium构建一个单元测试项目,但运行它总是失败,出现错误。 正如我所说的,我已经讨论了很多问题,但没有找到任何帮助我解决这个问题的东西。提前致谢