簡體   English   中英

使用Mockito的駱駝路線中使用的模擬服務

[英]Mock service used in Camel route using Mockito

我正在嘗試模擬服務,以便可以在駱駝路線中使用模擬服務。 但是,當我嘗試使用方法findByStatus ,會出現以下異常:

Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route jobRoute at: >>> Transform[bean{camelJobService, method=findByStatus}] <<< in route: Route(jobRoute)[[From[direct:start]] -> [Transform[bean{came... because of org.apache.camel.component.bean.MethodNotFoundException: Method with name: findByStatus not found on bean: Mock for CamelJobService, hashCode: 1172605816 of type: com.sun.proxy.$Proxy104
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1072)
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
    at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:944)
    at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3245)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2968)
    at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:172)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2799)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2795)
    at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2818)
    at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2795)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2764)
    at org.apache.camel.test.spring.CamelSpringTestContextLoader$7.execute(CamelSpringTestContextLoader.java:515)
    at org.apache.camel.test.spring.CamelSpringTestHelper.doToSpringCamelContexts(CamelSpringTestHelper.java:92)
    at org.apache.camel.test.spring.CamelSpringTestContextLoader.handleCamelContextStartup(CamelSpringTestContextLoader.java:509)
    at org.apache.camel.test.spring.CamelSpringTestContextLoader.loadContext(CamelSpringTestContextLoader.java:164)
    at org.apache.camel.test.spring.CamelSpringTestContextLoader.loadContext(CamelSpringTestContextLoader.java:87)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
    ... 45 more
Caused by: org.apache.camel.RuntimeCamelException: org.apache.camel.component.bean.MethodNotFoundException: Method with name: findByStatus not found on bean: Mock for CamelJobService, hashCode: 1172605816 of type: com.sun.proxy.$Proxy104
    at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1642)
    at org.apache.camel.model.language.MethodCallExpression.validateHasMethod(MethodCallExpression.java:247)
    at org.apache.camel.model.language.MethodCallExpression.createExpression(MethodCallExpression.java:204)
    at org.apache.camel.model.language.ExpressionDefinition.createExpression(ExpressionDefinition.java:177)
    at org.apache.camel.model.TransformDefinition.createProcessor(TransformDefinition.java:57)
    at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:534)
    at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:495)
    at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:219)
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)

我的camel-context.xml:

<bean id="camelJobService" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="target"> <bean class="org.mockito.Mockito" factory-method="mock"> <constructor-arg value="com.asklytics.camel.db.service.CamelJobService" /> </bean> </property>
</bean>

<camelContext xmlns="http://camel.apache.org/schema/spring">

    <spring:route id="jobRoute" startupOrder="2">
        <spring:from uri="direct:start"/>
        <spring:transform>
            <spring:method ref="camelJobService" method="findByStatus"></spring:method>
        </spring:transform>

        <to uri="mock:result"/>
    </spring:route>
</camelContext>

我知道在模擬bean服務上找不到方法findByStatus 但是,我如何模擬該服務以便能夠找到它?

我認為您不能像那樣嘲笑豆子。 您只能模擬有意義的端點,因為端點可能不可用。 你為什么要嘲笑豆子? 請參閱文檔。 http://camel.apache.org/mock.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM