java - 用于集成测试的 Mock JmsTemplate

标签 java spring spring-jms springmockito

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

在我的 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。 提前致谢。

最佳答案

或者在 Spring 4 中 ;)

@Bean
public JmsTemplate jmsTemplate() {
    return Mockito.mock(JmsTemplate.class);
}

正如@Stephane 所说,但没有 xml。
但我仍然建议您使用嵌入式代理进行集成测试。因为它可以让您检查队列中到底有什么。

关于java - 用于集成测试的 Mock JmsTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25178454/

相关文章:

java - Spring Rest 客户端异常处理

activemq - 使用 Active MQ 和 BlobMessage 发送文件

jms - 使用 IBM 的 mq-jms-spring 检测断开连接

java - 从同一行读取多个输入。

java - 如何比较两个日历日期?

java.lang.NoClassDefFoundError : org/springframework/cloud/test/TestSocketUtils after upgrading Spring Boot version to 3. x

java - Activemq 与 rabbitmq

java - 将变量从 Activity 传递到自定义创建的 View

java - 有没有获取iOS设备日志的命令?像使用logcat一样我们可以获取Android设备日志

java - 策略模式 - 如何注入(inject)策略 - NoUniqueBeanDefinitionException