基于spring3的单元测试

        我们以前要进行单元测试,必须先得到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 .   MockHttpServletRequest HttpServletRequest 接口的 mock 实现。

    B.   MockHttpServletResponse HttpServletResponse 接口的 mock 实现。

    C.   MockHttpSession HttpSession 接口的 mock 实现。

      ......

   测试代码如下

   controlle类:

   

  测试类:

   从上可以看出,spring的mock实现不仅可以用于springMVC的测试,同样可以用于Struts的测试,非常方便

猜你喜欢

转载自liudeh-009.iteye.com/blog/1179905