spring 2.5+junit4.4 测试基础配置

 

 一直没有用过在spring中使用junit来测试。今天兴趣来了,简单试了一下,有了比较清楚的了解。

在myeclipse6.5中使用junit的图形插件,这里有个问题,刚开始我用的是junit的最新的包(4.8),运行测试就是一直报NoSuchMethod(org.junit.runner.notification.RunNotifier.testAborted(.......)),后来发现是包的问题,换成(4.6)问题依旧,直到换成4.4的包才解决问题,估计是myeclipse的问题,如果你也出现这样的问题,可以试着换一下包。

 

虽然JUnit和Spring集成的测试框架很牛X,但是我是初次使用,第一个感觉就是简单配置,很方便。比起手动写许多东西要容易。

说明一下:此配置过程使用的Spring2.5,junit 4.4,使用了spring 的注解配置 使得测试过程更加简洁。不熟悉Spring Annotation的可以先熟悉一下。

这里还必须的包是:common-annotation.jar,spring-test.jar其实就是javax.annotation 在jdk中其实已经包含了,我觉得可有可无,既然许多人都说要,你也就加上吧。

 

简单起见,所有的bean 都是JavaBean,

先看一下所有的类文件

这个是测试类

package com.pm.annotation;

import javax.annotation.Resource;

import com.pm.obj.BaseEmployee;

public class TestAnnotation {
 @Resource
 private BaseEmployee baseEmployee;
 
 public void test(){
  baseEmployee.setAddress("测试");
  System.out.println(baseEmployee.getAddress());
  
 }
 
}

 

这个是测试用例:

package com.pm.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.pm.annotation.TestAnnotation;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class TestAction {
 @Autowired
 private  TestAnnotation testAnnotation;

 @Test
 public void testGetAddress(){
  testAnnotation.test();
 }
}

 

 

下面是applicationContext.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="

   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<context:annotation-config/>

 <bean id="testAnnotation" class="com.pm.annotation.TestAnnotation">
 </bean>
 <bean id="baseEmployee" class="com.pm.obj.BaseEmployee"></bean>
</beans>

 

下面简单说明一下:

@RunWith(SpringJUnit4ClassRunner.class) 用于配置spring中测试的环境,其中的的类是spring框架自带的,简单的让Junit知道是在spring的上下文环境中测试。

@ContextConfiguration 用来手工指定测试用的spring配置文件的位置。

默认情况下,可以不需要参数,这种情况下spring会在当前测试类所在的包中查找由"类名称-context.xml"的配置文件。

 该属性具有两个常用的属性,
@ContextConfiguration(locations={"base-context.xml"}) 

 @Autowired 使用的是Spring的注解,默认是根据type来自动注入的。如果,需要根据bean的Id来注入,需要使用@Qualifier("testAnnotation")里面的参数是bean 的id

 @Resource 是@Autowired的升级版,默认是根据bean的id来自动注入。

@test 用来指定测试方法的名称,可以随意定义

 

要想让Spring使用注解,需要在配置文件中引入若干处理器,后来Spring将它们放在了<context:annotation-config>中,此时 需要在xml的beans的命名空间中引入context的声明。

 <beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="

   http://www.springframework.org/schema/context
   
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

 

 spring 也提供了几个具体实现的测试类,还没怎么具体使用?

 

你可能感兴趣的:(spring,bean,MyEclipse,测试,JUnit,Autowired)