我在用spring Boot测试我的骆驼上下文时遇到了一些问题。
我使用的是spring boot 1.5.6、spock 1.1-groovy-2.4、camel 2.19.2和camel-spring-boot-starter 2.19.2。
我使用的是spock模拟,我使用的是@TestConfiguration
类中的DetachedMockFactory
。我所有的bean都使用构造函数注入。我正在将一个模拟的@repository
注入到一个处理器@component
中,我还将它注入到我的测试类中以定义交互。
我用@SpringBootTest
对测试进行了注释,其中的类列表包括所有Processor
实现和所有RouteBuilder
扩展。我的TestConfiguration
类还有一个'@import'。我甚至在测试中为这个存储库bean使用构造函数注入!
但注入到测试类中的mock似乎不是正在使用的mock。有没有人知道什么是错的?在每次测试之前和之后,我都尝试过@dirtiescontext
重新加载上下文,但没有帮助。
DetachedMocks行为不正确的问题(例如,似乎是同一个实例)通常是由某些框架将它们包装在代理中引起的。例如,这可能是由Spring中的@transactional
注释引起的,它创建了一个代理来促进JDBC会话管理。另见问题#758
对于spring,您可以使用aoputils
(jdoc)方法。简单的方法是使用aoputils.isaopproxy
检查它是否由spring代理,然后将其解封。
public static <T> T getTargetObject(Object proxy) throws Exception {
if (AopUtils.isAopProxy(proxy)) {
return (T) ((Advised) proxy).getTargetSource().getTarget();
} else {
return (T) proxy;
}
}
在测试中
def "sample service test"() {
given:
def sampleRepositryMock = getTargetObject(sampleRepositry)
when:
sampleService.doSomething() // simply invoke sampleRepositry.doSomething() in it
then:
1 * sampleRepositryMock.doSomething()
0 * _
}
没有“org.apache.camel.CamelContext”类型的合格bean可用:应至少有一个合格的自带候选bean。 依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}
我有哪些选项可以将Kafka与Spring靴骆驼连接? 我正在运行ActiveMQ Artemis和Camel,以建立进出客户端的JMS/MQTT和REST路由。我想把Kafka添加到这个二重唱中,以流式传输/交换数据(视频音频、文件/文本)。 到目前为止,我下载了Kafka汇合平台(免费试用),我正在测试他们提供什么。在融合平台中,我看到有可能将连接器作为“插件”添加。我假设我可以添加Camel
我有一个Spring Boot2.25.1应用程序,它使用Camel 2.25.1与camel-kafka,一切都正常工作…在我的Kafka消费者中,我需要添加该功能以按需暂停消费,因此我升级到camel 3.18.1,以便我可以使用可暂停功能。升级到3.18.1后,我收到错误FileNotes与类文件TimeoutAwareAggregationStategy.class. 当我打开camel-
我一直在尝试为Spring引导Kafka骆驼Avro消费者寻找示例代码,但没有运气。我在以下URL找到了Spring Camel Kafka消费者和生产者示例: https://thysmichels.com/2015/09/04/apache-camel-kafka-spring-integration/ 我的具体问题是,一旦我的bean从Avro模式创建,并且我有了POJO类,我如何将上面的c
我是第一次使用Camel。我的试验项目是编写一个应用程序,该应用程序接收HTTP GET请求(使用Jetty)并通过Thrift将请求传递到另一台服务器。然后将收到的答案传递回客户端。(即,如果您愿意,我正在编写超文本传输协议-get请求和Thrift支持的服务器之间的数据交换机或中间件应用程序。) 我有一个完美的非驼峰版本,现在我正在尝试将驼峰等效物组合在一起。目前,我只想将jetty请求写入一
我正在使用Camel 2.10.3。 假设我有一条类似于以下内容的路线: 一个测试类在通知生成器之后执行该操作,以断言我的拆分器正在执行它应该执行的操作。 假设sampleEventsInArrayJsonString是一个json数组,如下所示: 其中,该json数组中有7个对象元素。 测试几乎会立即失败。但是,测试的输出清楚地显示了7条“已收到:{}”的日志消息。 现在,有趣的部分来了...如