Spring整合JUnit4单元测试
使用Spring的JUnit4对Spring代码进行测试,将不再需要在程序的代码中直接写出创建Spring容器,及从Spring容器中通过getBean()获取对象了。这些工作将由JUnit4注解,配合着域属性的自动注入注解共同完成。
(1)导包
除了JUnit-4.9.jar外,还需导入Spring框架的解压目录中的Spring与JUnit4的整合JAR包:spring-test-4.2.1.RRELEASE.jar
(2)定义被测试的类
public class School{
private String name;
// setter
// toString()
}
public class Student{
private String name;
private int age;
private School school;
// setter
// toString()
}
(3)定义Spring配置文件
<context:component-scan base-package="com.zhy" />
<bean id="mySchool" class="">
<property name="name" value="清华大学"/>
</bean>
<bean id="myStudent" class="">
<property name="name" value="张三"/>
<property name="age" value=23 />
<property name="school" ref="mySchool"/>
</bean>
(4)定义测试类
在类头添加的两个注解
- @RunWith(SpringJUnit4ClassRunner.class):用于指定运行环境,它会帮我们创建容器。
- @ContextConfiguration(locations=""):用于指定创建容器时使用的配置文件的具体位置。
对于需要从容器中获取的bean对象,使用byType或者byName方式,将其自动注入。然后就可以直接测试对象了。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:src/下的具体位置")
public class MyTest{
@Autowired
@Qualifier("mySchool")
private Student student;
@Test
public void test01(){
System.out.println(student);
}
}
注解与XML共同使用
- 注解的好处是,配置方便、直观。但其弊端也显而易见:以硬编码的方式写入到了Java代码中,其修改是需要重新编译代码的。
- XML配置方式的好处是,对其所作修改,无需编译代码,只需重启服务器即可将新的配置加载。
若注解与XML同用。XML的优先级要高于注解。这样做的好处是,需要对某个Bean做修改,只需修改配置文件即可。当然,此时,Bean类要由setter或者构造器。