只有testAddUserWhenUserAbsent一个能通过, 其他的均不能通过, 都是internalAddUser之后,TestCase.assertNotNull(user.getId());失败, 如果我不用AbstractTransactionalJUnit4SpringContextTests的话可以,用了就不行, 但是要回滚数据库,所以没有办法啊, 不知道什么原因
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:dao-spring-context.xml")
public class NgTrackerUserDaoTest extends AbstractTransactionalJUnit4SpringContextTests { @Resource
private TrackerUserDAO trackerUserDAO; private NgTrackerUser internalAddUser(String loginId, String password
, String firstName, String lastName, Date registerDate) {
NgTrackerUser user = new NgTrackerUser();
user.setLoginId(loginId);
user.setPassword(password);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setRegisterTime(registerDate); trackerUserDAO.addUser(user); return user;
} @Test
public void testAddUserWhenUserAbsent() throws Exception {
NgTrackerUser user = trackerUserDAO.getUser("user001"); TestCase.assertNull(user); internalAddUser("user001", "89767", "jerry", "chen", new Date()); user = trackerUserDAO.getUser("user001"); TestCase.assertNotNull(user);
} @Test(expected = DuplicateKeyException.class)
public void testAddUserWhenUserExists() {
NgTrackerUser user = internalAddUser("user002", "88888", "shrek", "lee", new Date());
TestCase.assertNotNull(user); internalAddUser("user002", "88888", "shrek", "lee", new Date());
} @Test
public void testGetUserById() throws Exception { NgTrackerUser user = internalAddUser("user003", "76567", "tree", "chow", new Date()); TestCase.assertNotNull(user.getId()); user = trackerUserDAO.getUserById(user.getId().intValue()); TestCase.assertNotNull(user);
} @Test
public void testDelUser() throws Exception {
NgTrackerUser user = internalAddUser("user004", "9999", "jetty", "tai", new Date()); TestCase.assertNotNull(user.getId()); trackerUserDAO.deleteUser(user); user = trackerUserDAO.getUser("user004"); TestCase.assertNull(user);
} @Test
public void testUpdateUser() throws Exception { NgTrackerUser user = internalAddUser("user005", "479161", "chart", "pai", new Date()); TestCase.assertNotNull(user.getId()); user.setAlertEmail("[email protected]");
trackerUserDAO.updateUser(user); user = trackerUserDAO.getUser("user005"); TestCase.assertEquals(user.getAlertEmail(), "[email protected]");
}
}只有testAddUserWhenUserAbsent一个能通过, 其他的均不能通过, 都是internalAddUser之后,TestCase.assertNotNull(user.getId());失败, 如果我不用AbstractTransactionalJUnit4SpringContextTests的话可以,用了就不行, 但是要回滚数据库,所以没有办法啊, 不知道什么原因Springspring
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:dao-spring-context.xml")
public class NgTrackerUserDaoTest extends AbstractTransactionalJUnit4SpringContextTests { @Resource
private TrackerUserDAO trackerUserDAO; private NgTrackerUser internalAddUser(String loginId, String password
, String firstName, String lastName, Date registerDate) {
NgTrackerUser user = new NgTrackerUser();
user.setLoginId(loginId);
user.setPassword(password);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setRegisterTime(registerDate); trackerUserDAO.addUser(user); return user;
} @Test
public void testAddUserWhenUserAbsent() throws Exception {
NgTrackerUser user = trackerUserDAO.getUser("user001"); TestCase.assertNull(user); internalAddUser("user001", "89767", "jerry", "chen", new Date()); user = trackerUserDAO.getUser("user001"); TestCase.assertNotNull(user);
} @Test(expected = DuplicateKeyException.class)
public void testAddUserWhenUserExists() {
NgTrackerUser user = internalAddUser("user002", "88888", "shrek", "lee", new Date());
TestCase.assertNotNull(user); internalAddUser("user002", "88888", "shrek", "lee", new Date());
} @Test
public void testGetUserById() throws Exception { NgTrackerUser user = internalAddUser("user003", "76567", "tree", "chow", new Date()); TestCase.assertNotNull(user.getId()); user = trackerUserDAO.getUserById(user.getId().intValue()); TestCase.assertNotNull(user);
} @Test
public void testDelUser() throws Exception {
NgTrackerUser user = internalAddUser("user004", "9999", "jetty", "tai", new Date()); TestCase.assertNotNull(user.getId()); trackerUserDAO.deleteUser(user); user = trackerUserDAO.getUser("user004"); TestCase.assertNull(user);
} @Test
public void testUpdateUser() throws Exception { NgTrackerUser user = internalAddUser("user005", "479161", "chart", "pai", new Date()); TestCase.assertNotNull(user.getId()); user.setAlertEmail("[email protected]");
trackerUserDAO.updateUser(user); user = trackerUserDAO.getUser("user005"); TestCase.assertEquals(user.getAlertEmail(), "[email protected]");
}
}只有testAddUserWhenUserAbsent一个能通过, 其他的均不能通过, 都是internalAddUser之后,TestCase.assertNotNull(user.getId());失败, 如果我不用AbstractTransactionalJUnit4SpringContextTests的话可以,用了就不行, 但是要回滚数据库,所以没有办法啊, 不知道什么原因Springspring
解决方案 »
- Spring与Hibernate整合getHibernateTemplate().delete(object)删除不了数据
- SSH删除功能出错,麻烦帮看看!
- web页面里的权限是怎么实现的呢
- weblogic集群问题:session与application
- 为了获得积分,在此发帖。
- 高分求助 STRUTS2 为什么文本文件不能上传空文件 而WORD就行
- main方法里怎么接收servlet返回的值,,返回一个字符串即可
- 收购ERP源代码...(B/S)有意者请联系我
- poolman错误,请教各位高手
- java读取文件夹下txt文件中特定信息(很急求解!!!)
- Unhandled Exception thrown: class org.springframework.dao.CannotAcquireLockExcep
- struts1 spring2.5 hibernate3 aop 切不进去啊 junit 好用 一到 web 就不好用
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:c3p0.properties"/>
</bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass"><value>${c3p0.driverClass}</value></property>
<property name="jdbcUrl"><value>${c3p0.jdbcUrl}</value></property>
<property name="user"><value>${c3p0.user}</value></property>
<property name="password"><value>${c3p0.password}</value></property> <property name="minPoolSize"><value>${c3p0.minPoolSize}</value></property>
<property name="maxPoolSize"><value>${c3p0.maxPoolSize}</value></property>
<property name="maxIdleTime"><value>${c3p0.maxIdleTime}</value></property>
<property name="acquireIncrement"><value>${c3p0.acquireIncrement}</value></property>
<property name="maxStatements"><value>${c3p0.maxStatements}</value></property>
<property name="initialPoolSize"><value>${c3p0.initialPoolSize}</value></property>
<property name="idleConnectionTestPeriod"><value>${c3p0.idleConnectionTestPeriod}</value></property>
<property name="acquireRetryAttempts"><value>${c3p0.acquireRetryAttempts}</value></property>
<property name="breakAfterAcquireFailure"><value>${c3p0.breakAfterAcquireFailure}</value></property>
<property name="testConnectionOnCheckout"><value>${c3p0.testConnectionOnCheckout}</value></property>
</bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="select*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*DAO</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:dao-mybatis-config.xml" />
</bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean> <bean id="trackerDeviceDAO" class="com.topflytech.gps.dao.impl.NgTrackerDeviceDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean> <bean id="trackerEventDAO" class="com.topflytech.gps.dao.impl.NgTrackerEventDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean> <bean id="trackerPositionDAO" class="com.topflytech.gps.dao.impl.NgTrackerPositionDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean> <bean id="trackerUserDAO" class="com.topflytech.gps.dao.impl.NgTrackerUserDAO">
<property name="sqlSession" ref="sqlSession"/>
</bean>
</beans>