当前位置: 首页 > 知识库问答 >
问题:

用Spring测试JUnit时Hibernate 4的转换异常

束俊材
2023-03-14

我用org.springframework.orm.Hibernate4.LocalSessionFactoryBean类创建了sessionFactory bean,用org.springframework.orm.Hibernate4.HibernateTransActionManager类创建了transactionManager bean。

请指教。

下面是JUnit测试的datasource.xml。测试在开发人员配置文件下运行。而确切的。xml代码在主应用程序的生产配置文件下平稳地运行。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    <context:component-scan base-package="com.caveofprogramming.spring.test">
    </context:component-scan>
    enter code here
    <beans profile="dev">`enter code here`

        <context:property-placeholder
            location="com/caveofprogramming/spring/web/test/config/jdbc.properties" />

        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
            destroy-method="close">
            <property name="driverClassName" value="${jdbc.driver}"></property>
            <property name="url" value="${jdbc.url}"></property>
            <property name="password" value="${jdbc.password}"></property>
            <property name="username" value="${jdbc.username}"></property>
        </bean>

        <!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource"></property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                    <prop key="javax.persistence.validation.group.pre-persist">
                        com.caveofprogramming.spring.web.dao.PersistenceValidationGroup
                    </prop>
                    <prop key="javax.persistence.validation.group.pre-update">
                        com.caveofprogramming.spring.web.dao.PersistenceValidationGroup
                    </prop>
                    <prop key="javax.persistence.validation.group.pre-remove">
                        com.caveofprogramming.spring.web.dao.PersistenceValidationGroup
                    </prop>
                </props>
            </property>
            <property name="packagesToScan">
                <list>
                    <value>com.caveofprogramming.spring.web.dao</value>
                </list>
            </property>
        </bean>

        <!-- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
            <property name="sessionFactory" value="sessionFactory"></property>
        </bean>

        <tx:annotation-driven />

        <bean id="exceptionTranslator"
            class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor">
        </bean>

    </beans>

</beans>

共有1个答案

赫连俊悟
2023-03-14

您必须将引用传递给bean,而不是值。所以改变这个:

<property name="sessionFactory" value="sessionFactory"></property>

<property name="sessionFactory" ref="sessionFactory"></property>
 类似资料:
  • Java8: 用Kotlin改写一下,看起来是这样的: 上面的单元测试运行良好,但我想去掉 在org.springframework.test.context.junit4.springjunit4ClassRunner.(Springjunit4ClassRunner.java:104)在sun.reflect.nativeConstructorAccessorImpl.newInstance0

  • 我构建了一个有3个属性的帐户类:余额、所有者、acctNo。帐户类有2个构造函数,一个接受3个属性,一个不接受数据。帐户类有设置和获取方法以及存款和取款方法。 我还构建了一个类,该类从类扩展而来。将此类修改为类后,取款方法或此方法尝试将余额设置为零以下,将抛出。 JUnit测试人员修改测试方法,将尝试提取超过当前余额的可用,所以做测试方法。我需要修改JUnit测试透支帐户,以便它捕获异常,并捕获。

  • 问题内容: 我真的是java的新手。 我正在构造函数上运行一些JUnit测试。构造函数是这样的:如果为其参数之一赋予null或空字符串,则应该抛出异常。 当我在JUnit中使用null或空字符串参数测试此构造函数时,即使我几乎100%确信将此类参数传递给它时,构造函数方法确实会引发异常,我也会看到一条红色的条。 如果该方法以预期的方式引发异常,则JUnit中是否应该没有绿色的条形?还是当异常抛出按

  • 问题内容: 编辑:目前没有JUnit 4。 嗨,您好, 我对使用JUnit进行“智能”异常测试有疑问。目前,我这样做是这样的: 如您所见,对于每个应该引发异常的函数,我都需要一个try / catch块。似乎不是执行此操作的好方法-还是没有可能减少try / catch的使用? 问题答案: 我建议您需要分解为多个单独的测试。各个try / catch块似乎彼此非常独立。您可能还希望将通用初始化逻辑

  • 我尝试编写一个类来从UTC转换为EST时区。此外,我只想存储日期部分。它工作正常。现在我正在寻找dateFromUtcToJavaTimeZone方法的各种JUnit测试用例。你能给我一些建议吗?

  • 我应该如何测试异常?我可以mock connector并且我可以赋予它抛出异常的行为,但是我不明白下一步该怎么做。