我刚刚开始了一个使用spring和spring mvc的小项目。我已经定义了域类和服务以及 DAO。我正在使用 spring ORM 进行休眠。现在我正在尝试使用弹簧测试(JUnit)测试 DAO 层。
为此,我用谷歌搜索并得到了一个例子。我正在使用以下代码进行测试,
ORMTest.java(JUnit 测试类)
package org.droidaceapps.tests;
import org.droidaceapps.domain.Users;
import org.droidaceapps.services.UserServiceInter;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
@ContextConfiguration
public class SterlingTest extends AbstractTransactionalJUnit4SpringContextTests {
@Test
public void userDAOTest(){
UserServiceInter userService = (UserServiceInter)
super.applicationContext.getBean("userService");
Users userSrinivas = new Users();
userSrinivas.setName("Srinivas");
userSrinivas.setPassword("techno890");
String[] skills = {"java","c++"};
userSrinivas.setSkills(skills);
userService.createUser(userSrinivas);
}
}
下面是我的测试配置文件,(我已将此文件放在与 ORMTest.java 文件相同的文件夹中。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>/org/droidaceapps/domain/users.hbm.xml</value>
</list>
</property>
</bean>
用户.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="org.droidaceapps.domain.Users" table="users" >
<id name="id" column="id" type="java.lang.Long">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<property name="password" type="string"/>
</class>
</hibernate-mapping>
现在,当我运行 ORMTest.java 时,我在控制台中得到以下输出,
Aug 14, 2012 7:18:53 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [org/droidaceapps/tests/ORMTest-context.xml]
Aug 14, 2012 7:18:54 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.GenericApplicationContext@ebe9f73: startup date [Tue Aug 14 07:18:54 BST 2012]; root of context hierarchy
Aug 14, 2012 7:18:54 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@250606f7:
定义bean [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalRequiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.annotation .internalPersistenceAnnotationProcessor, org.springframework.web.servlet.view.InternalResourceViewResolver#0, dataSource,sessionFactory,hibernateTemplate,userDAO,userService]; 工厂层次结构的根
我没有看到在数据库中创建了表,也没有在 hibernate 创建的控制台中看到任何 sql 语句。
我错过了什么吗?
谢谢