论坛首页 Java企业应用论坛

基于spring3的单元测试

浏览 7957 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-09-25  

        我们以前要进行单元测试,必须先得到ApplicationContext对象,再通过它得到业务对象,非常麻烦,重复代码也多.基于spring3的单元测试很好的解决了这个问题

       基于spring3的单元测试主要用到了下面几个注解

             @ContextConfiguration指定配置文件的路径,这个注解用在类上

             @Resource 往测试类注入bean,这个bean必须在配置文件中配置,这个注解用在属性或set方法上

             @Repeat 指定测试方法重复执行的次数,用在测试方法上

             @Timed指定测试方法在多长时间执行完,如果在指定时间测试方法没有执行完,会抛异常

      测试类除了可以使用以上的注解,同时要继承AbstractJUnit4SpringContextTests,只有继承这个类,才能从spring容器中得到注入对象

     

 1.普通的单元测试

      

 

   

 2.脱离web容器的springMVC的测试

      传统认为,web应用的测试因为涉及到web组件,需要web容器的支持,这给测试带来复杂性.可不可以脱离web容器对web应用进行测试呢?spring告诉你可以.

      Spring自身提供了一个Mock实现:它可以轻松的对Web组件进行单元测试,就象测试POJO(普通Java对象)一样简单.它在J2EE的WEB端为每个关键接口提供了一个Mock实现

    A.   MockHttpServletRequestHttpServletRequest接口的mock实现。

    B.  MockHttpServletResponseHttpServletResponse接口的mock实现。

    C. MockHttpSessionHttpSession接口的mock实现。

      ......

 

   测试代码如下

   controlle类:

   

  测试类:

     



 

   

  

 

   

  • 大小: 51.7 KB
  • 大小: 36.4 KB
  • 大小: 55.5 KB
   发表时间:2011-09-25  
不错。正好用到了
0 请登录后投票
   发表时间:2011-09-25  
学习了,有时感觉配置比较烦,还不如直接写个junit的简单类,然后把spring的配置文件直接java语句写进去,后面的测试类继承就行了.
0 请登录后投票
   发表时间:2011-09-26  
用了注解很方便,学习了
0 请登录后投票
   发表时间:2011-09-26  
项目中正在用,结合DBunit 测试
0 请登录后投票
   发表时间:2011-09-27  
AbstractTransactionalSpringContextTests  spring2.0就有这个了
0 请登录后投票
   发表时间:2011-09-27  
学习备份一下
0 请登录后投票
   发表时间:2011-10-03  
我觉得Spring的测试模组挺好,但是@Repeat与@Timed就大可不必了,
为什么?因为Spring的测试模组不能取代像JUnit或是TestNG的存在,
看看您的程序中的@Test,这不是Spring提供的吧!
而@Timed在两个测试框架中,也都有了类似的设定,
至于@Repeat, 1+1=2 须要测试1遍以上吗?
重点是这个@Repeat是否支持并发测试?
也并发测试JUnit或是TestNG也都有了,所以我认为
@Repeat与@Timed是鸡肋般的存在
0 请登录后投票
   发表时间:2011-10-08  
可以学习,可以利用。
0 请登录后投票
   发表时间:2011-10-08  
最后一个图片挂了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics