在Junit测试中使用时如何注入模拟数据源

时间:2015-12-30 13:57:03

标签: spring unit-testing junit mocking mockito

在我的应用程序中,我们使用下面的代码通过JNDIlook绑定数据源:

<bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:/jboss/datasources/efmDS</value>
    </property>
</bean>

Dao的代码如下:

   @Autowired
    @Qualifier("jndiDataSource")
    public void setDataSource(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

现在我在运行Junit测试用例时遇到问题。 我正在测试一个使用@Transactional注释的服务方法。 这个服务方法在内部调用了一些dao方法,我已经使用mockito进行了模拟但是我遇到了问题,因为当事务开始时它试图从数据源获取连接,这是不存在的并且抛出了communicationlinkfailure异常 在这种情况下如何模拟数据源?或任何其他解决问题的方法也表示赞赏?

0 个答案:

没有答案