使用JUnit测试SSH框架的Service层和DAO层
2012-10-20 10:24
585 查看
JUnit可以对代码进行测试,可以在开发时对代码的正确性进行验证,后来演进出了TDD,测试先行。可现在很多项目使用SSH架构,Spring管理的Bean在JUnit中无法注入,而且频繁的进行单元测试会产生大量的垃圾数据,这是困扰开发人员的一大问题。
幸好Spring提供了一个类,用来集成JUnit进行Service层和DAO层的单元测试,它可以将Spring管理的Bean进行注入并在测试结束后控制Hibernate将数据回滚,这个类就是“AbstractTransactionalDataSourceSpringContextTests”。
下面是这个类的使用方法:
public class JUTest extends AbstractTransactionalDataSourceSpringContextTests
{
//Service层Bean
private MyService myServiceImpl;
//重写父类的方法,进行Spring配置文件的初始化
public String[] getConfigLocations()
{
String[] config = new String[] { "/spring/applicationContext.xml"
, "/spring/test.xml"
, "/spring/applicationContext-allbean-hibernate.xml" };
return config;
}
//测试方法
public void testService()
{
myServiceImpl.doService();
}
//Service层Bean的set方法,这里注意一定要加(@Qualifier("myServiceImpl"),不然会报一个bean重复的错误
public void setMyServiceImpl(@Qualifier("myServiceImpl") MyService myServiceImpl)
{
this.myServiceImpl = myServiceImpl;
}
}
写完后右键Run As JUnit就OK啦!
不过有一个问题,这样的测试只能测试会不会报错如果插入的数据有问题是测试不出来的,而且测试结束后数据会回滚,无法在数据库中看到测试数据,那咱么办呢?可以在这里写一个JDBC的查询逻辑,将数据查出来进行验证。
另外,貌似TestSuite中所有的TestCase都会加载一遍Spring配置文件,测试性能不是一般的跌眼镜。。。
原文:http://blog.csdn.net/haoyuan4568/article/details/8037264
幸好Spring提供了一个类,用来集成JUnit进行Service层和DAO层的单元测试,它可以将Spring管理的Bean进行注入并在测试结束后控制Hibernate将数据回滚,这个类就是“AbstractTransactionalDataSourceSpringContextTests”。
下面是这个类的使用方法:
public class JUTest extends AbstractTransactionalDataSourceSpringContextTests
{
//Service层Bean
private MyService myServiceImpl;
//重写父类的方法,进行Spring配置文件的初始化
public String[] getConfigLocations()
{
String[] config = new String[] { "/spring/applicationContext.xml"
, "/spring/test.xml"
, "/spring/applicationContext-allbean-hibernate.xml" };
return config;
}
//测试方法
public void testService()
{
myServiceImpl.doService();
}
//Service层Bean的set方法,这里注意一定要加(@Qualifier("myServiceImpl"),不然会报一个bean重复的错误
public void setMyServiceImpl(@Qualifier("myServiceImpl") MyService myServiceImpl)
{
this.myServiceImpl = myServiceImpl;
}
}
写完后右键Run As JUnit就OK啦!
不过有一个问题,这样的测试只能测试会不会报错如果插入的数据有问题是测试不出来的,而且测试结束后数据会回滚,无法在数据库中看到测试数据,那咱么办呢?可以在这里写一个JDBC的查询逻辑,将数据查出来进行验证。
另外,貌似TestSuite中所有的TestCase都会加载一遍Spring配置文件,测试性能不是一般的跌眼镜。。。
原文:http://blog.csdn.net/haoyuan4568/article/details/8037264
相关文章推荐
- 使用JUnit测试SSH框架的Service层和DAO层
- 用JUnit测试SSH框架的Service层和DAO层
- 使用junit测试ssh框架一般流程
- 使用junit测试service执行成功,数据库没有改变
- java使用jUnit,jMockit,dbunit做DAO层单元测试方法
- Junit中使用测试用例
- 软件测试技术第一次试验之——JUnit的安装与使用
- 使用Mock MVC来进行Controller 层的junit的测试
- 使用springmvc+activemq时候junit测试时候报java.lang.IllegalStateException:
- 在IDEA中使用JUnit进行方法测试
- JUnit测试框架使用介绍
- 在IDEA中使用JUnit进行方法测试
- Spring笔记(第三弹:使用JUnit对Spring工程进行测试)
- Junit框架使用(6)-- 测试套件与Maven测试
- [软件测试_LAB1]安装junit和hamcrest及其使用
- Eclipse中使用Junit插件测试
- 使用Maven实现Struts2+Hibernate4+Spring3整合SSH框架(二):导入Spring的jar包并添加测试实现
- 在Android中使用Junit测试注意事项
- Hibernate使用JUnit进行测试
- JUnit测试框架之JUnit3和JUnit4使用区别的总结