Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于集成测试的模拟JmsTemplate_Java_Spring_Spring Jms_Springmockito - Fatal编程技术网

Java 用于集成测试的模拟JmsTemplate

Java 用于集成测试的模拟JmsTemplate,java,spring,spring-jms,springmockito,Java,Spring,Spring Jms,Springmockito,需要在我的应用程序中模拟JmsTemplate进行集成测试 在my appcontext.xml中 <bean id="core_connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate"> <ref bean="core_jndiTemplate" />

需要在我的应用程序中模拟JmsTemplate进行集成测试

在my appcontext.xml中

<bean id="core_connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate">
            <ref bean="core_jndiTemplate" />
        </property>
        <property name="jndiName">
            <value>ConnectionFactory</value>
        </property>
    </bean>

    <bean id="core_jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="core_connectionFactory" />
        <property name="defaultDestination" ref="core_destination" />
    </bean>


    <bean id="core_destination" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate">
            <ref bean="core_jndiTemplate" />
        </property>
        <property name="jndiName">
            <value>queue/CoreQueue</value>
        </property>
    </bean>

连接工厂
队列/核心队列
需要在我的testcontext.xml中模拟jmstemplete。
提前谢谢。

以下内容如何

<bean id="core_jmsTemplate" class="org.mockito.Mockito" factory-method="mock">
    <constructor-arg value="org.springframework.jms.core.JmsTemplate"/>
</bean>

您可能需要注入模板并在测试中配置mock(
给定(…)。将返回

或在Spring4;)

正如@Stephane所说,但没有xml。

但我仍然建议您在集成测试中使用嵌入式代理。因为它将允许您检查队列中的确切内容。

corejmstemplate没有在任何地方使用,对吗?我认为没有必要嘲笑。不过,您可以使用Spring配置文件来创建一个或另一个bean,具体取决于活动配置文件。我正在test-context.xml中导入app-context.xml。因此需要对其进行初始化。我有一个问题,Spring会像创建普通bean一样创建模拟代理。在这种情况下,
when(…).thenReturn(…)
工作正常,但是
verify(…)
说我应该在mock上执行该方法。没有理由它应该在该对象上创建代理,除非你的应用程序中有一个超宽切入点的方面。恐怕您需要弄清楚为什么要创建代理。
@Bean
public JmsTemplate jmsTemplate() {
    return Mockito.mock(JmsTemplate.class);
}