使用junit进行Spring测试
2014-10-09 16:56
225 查看
这几天在做SpringMVC的项目,现在总结一下在测试的时候碰到的一些问题。
以前做项目,是在较新的MyEclipse(2013)上面进行Maven开发,pom.xml 文件是直接复制的,做测试的时候都是比较顺利的。然而这次,是在Myeclipse 8.5 上面开发,用的是JavaEE5,在测试的时候,就碰到了不少问题,有时候快被搞死!
一般来说,我们给测试类单独一个包,同时给spring一份测试的配置文件(复制production的配置文件,删除不用的组件,如 shiro,ehcache等暂时用不到的)。
我用到的组件版本:
注意,进行注解形式的spring-test,需要引入spring-test-4.0.6.RELEASE.jar
接着,开始别写测试类,这里用一个汽车实体的DAO做例子
首先是Car.java,简单起见,Car就只有name属性。
测试类:
可以看到,使用注解来配置junit还是很方便的。
使用 junit 运行测试类,一开始出现了:java.lang.NoClassDefFoundError: Ljavax.persistence.ForeignKey() 的错误
经排查,发现时javaEE5 的javaee.jar 没有ForeignKey 这个注解。
这时,可以配置一些junit的运行环境,删除javaEE5的引用,如下图所示:
再次运行,如果出现找不到servlet.**** 类的错误,那么可以加入自己的 servlet.api.jar 到项目class path中。
我用的是 :servlet-api-2.5.jar
现在test运行正常。
spring test 是默认事务回滚的,就是说在test中进行的数据库操作,都不会对真实的数据有影响(除了表结构的update操作),这时,如果需要对数据进行修改,可以取消spring 的回滚,在test方法上加入以下注解:
[/code]
以前做项目,是在较新的MyEclipse(2013)上面进行Maven开发,pom.xml 文件是直接复制的,做测试的时候都是比较顺利的。然而这次,是在Myeclipse 8.5 上面开发,用的是JavaEE5,在测试的时候,就碰到了不少问题,有时候快被搞死!
一般来说,我们给测试类单独一个包,同时给spring一份测试的配置文件(复制production的配置文件,删除不用的组件,如 shiro,ehcache等暂时用不到的)。
我用到的组件版本:
Spring 4.0.6 Hibernate 4 junit 4.8.2
注意,进行注解形式的spring-test,需要引入spring-test-4.0.6.RELEASE.jar
接着,开始别写测试类,这里用一个汽车实体的DAO做例子
首先是Car.java,简单起见,Car就只有name属性。
测试类:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath*:test/root-context.xml" }) @Transactional(readOnly=false) public class TestCarDao { @Autowired private CarDao dao; @Test public void test(){ Car c = new Car(); c.setName("0--0-----00--"); dao.save(c); } }
可以看到,使用注解来配置junit还是很方便的。
使用 junit 运行测试类,一开始出现了:java.lang.NoClassDefFoundError: Ljavax.persistence.ForeignKey() 的错误
经排查,发现时javaEE5 的javaee.jar 没有ForeignKey 这个注解。
这时,可以配置一些junit的运行环境,删除javaEE5的引用,如下图所示:
再次运行,如果出现找不到servlet.**** 类的错误,那么可以加入自己的 servlet.api.jar 到项目class path中。
我用的是 :servlet-api-2.5.jar
现在test运行正常。
spring test 是默认事务回滚的,就是说在test中进行的数据库操作,都不会对真实的数据有影响(除了表结构的update操作),这时,如果需要对数据进行修改,可以取消spring 的回滚,在test方法上加入以下注解:
[code]@Rollback(false)
[/code]
相关文章推荐
- 在Eclipse中使用JUnit进行单元测试(上)
- Eclipse学习4-在Eclipse中使用JUnit进行单元测试(上)
- 使用Junit对Android应用进行单元测试
- 使用Eclipse对JUnit测试函数进行Debug时断点无效问题
- 使用struts2 - junit - plugin - *.jar对Action进行测试
- 在Eclipse中使用JUnit进行单元测试
- 在Eclipse中使用Junit4.x与EasyMock进行单元测试
- 使用 JUnit 进行容器内测试
- 使用junit进行并发测试
- 使用JUnit 进行测试
- 使用Junit对Android应用进行android3.0单元测试
- Ant---利用 Ant 和 JUnit 进行增量开发使用单元测试来逐步改进代码
- 在Eclipse中使用JUnit进行单元测试(二)
- 在Eclipse中使用JUnit进行单元测试
- 使用Netbeans里的JUnit进行软件单元测试
- Eclipse学习4-在Eclipse中使用JUnit进行单元测试(下)
- 在Eclipse中使用JUnit进行单元测试
- 利用 Ant 和 JUnit 进行增量开发-使用单元测试来逐步改进代码
- 使用Groovy+JUnit+GMock进行单元测试
- JUnit使用abstract类来进行测试