1

私はSpring-Hibernate DAOで単体テストを行っています...を使用して構成されています

@ContextConfiguration( locations = { "classpath:test-applicationContext.xml" })

しかし、実際のデータベースと取引しているように見えます。実際のデータベースを操作せずに一時データストアを使用するにはどうすればよいですか

4

2 に答える 2

1

別のファイルでデータ ストアを定義し、その xml ファイルをメール アプリケーション xml に含めます。テストするときは、別の xml ファイルを含めて、hsql などの別のデータベースを指すデータ ストアを保持します。次に、これがメインの applicationContext.xml によって参照されるデータ ソースになります。

于 2013-01-09T07:21:37.113 に答える
0

ありがとう、私はH2を使用して動作させました:

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url"
        value="jdbc:h2:mem:processdb;INIT=RUNSCRIPT FROM 'classpath:create.sql'" />
</bean>




<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">org.hibernate.dialect.H2Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<tx:annotation-driven />

<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="stateDAO" class="com.tutorial.jquery.dao.impl.StateDAOImpl"></bean>
<bean id="stateService" class="com.tutorial.jquery.service.impl.StateServiceImpl"></bean>
于 2013-01-09T19:57:57.647 に答える