当前位置: 首页 > 面试题库 >

Spring在使用JUnit的单元测试中无法自动装配

邴姚石
2023-03-14
问题内容

我使用JUnit测试以下DAO:

@Repository
public class MyDao {

    @Autowired
    private SessionFactory sessionFactory;

    // Other stuff here

}

如你所见,sessionFactory是使用Spring自动接线的。当我运行测试时,sessionFactory保持为空,并且出现空指针异常。

这是Spring中的sessionFactory配置:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation">
        <value>classpath:hibernate.cfg.xml</value>
    </property>
    <property name="configurationClass">
        <value>org.hibernate.cfg.AnnotationConfiguration</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${jdbc.dialect}</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

怎么了?我如何也可以为单元测试启用自动装配?

更新:我不知道这是否是运行JUnit测试的唯一方法,但是请注意,我正在Eclipse中运行,右键单击测试文件,然后选择“运行方式”->“ JUnit测试”


问题答案:

在根单元测试类中添加以下内容:

@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration

这将在你的默认路径中使用XML。如果需要指定非默认路径,则可以为ContextConfiguration批注提供locations属性。



 类似资料:
  • 我想尝试嵌入式数据库测试我的DAO对象在spring应用程序。 在应用程序上下文中,我有以下标记: 我的JUnit测试类需要使用这个bean: 一切正常(创建了“DataSourceEmbedded”bean),但当我试图在PartnerDAOTest类中自动调用它们时,spring抛出了以下异常: testSavePartner(Sandbox.PartnerDaoTest):创建名为“Sand

  • 问题内容: 有没有一种简单的方法可以轻松地在特定的单元测试中覆盖自动装配的Bean?编译类中每种类型只有一个bean,因此在这种情况下自动装配不是问题。测试类将包含其他模拟。运行单元测试时,我只想指定一个基本的附加配置,运行该单元测试时,请使用此模拟而不是标准Bean。 概要文件似乎对我的需求有些矫kill过正,而且我不确定使用主要注解是否可以实现,因为不同的单元测试可能具有不同的模拟。 问题答案

  • 我正在使用Spring 3.1.0。发布和JUnit 4.8.1.我很难弄清楚为什么类的成员字段在JUnit测试中没有自动生成。我的测试看起来像... 类"EventFeed"调用以下类的实例... 但当它出现时,AbstractEventParser的“netUtilsService”成员字段为空。这很奇怪,因为在我的“testApplicationContext.xml”文件中,我有这个,我认

  • 本文向大家介绍Spring Boot 单元测试JUnit的实践,包括了Spring Boot 单元测试JUnit的实践的使用技巧和注意事项,需要的朋友参考一下 一、介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试。 <!--more--> 白盒测试:把测试对象看

  • 本文向大家介绍详解Spring Boot Junit单元测试,包括了详解Spring Boot Junit单元测试的使用技巧和注意事项,需要的朋友参考一下 Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性。 凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半。 刚好前段时间写了一些关于SpringBoo

  • 我对春靴和科特林很陌生。我从一个net的基本应用程序开始写单元测试,但我得到了以下错误: 让我向您展示代码:实体类 控制器: