spring的测试

来源:互联网 发布:java模拟器 编辑:程序博客网 时间:2024/04/27 03:46

在说Spring的测试之前,先看一下Spring测试在整个Spring框架中所占的位置:


看上面的这幅图,有一个Test,这就是Spring的测试了,如果说Spring最核心的东西是IOC和AOP,那么添加一个Test也是无可厚非的,因为测试的重要性已经不用再多说了。

现在先看一下传统测试方式,了解一下传统测试方式有哪些弊端,才能够更好的理解Spring测试好处和优势:

可以看到上面的代码段,是我们都用过的测试,那么这种测试有哪些弊端呢:

1.我们需要手动的去启动spring容器

2.测试完成之后,我们并没有正常的关闭spring容器

3.我们每运行一个测试用例,就要重新启动一次Spring容器

4.我们的spring容器是运行在JUnit测试里面的(运行在别人的怀里,完全体现不出来Spring测试给我们带来的好处了。)

好了,看来传统测试方式的弊端,我们就看一下基于spring的测试是怎么实现的:


运行结果:


首先我先描述一下基于Spring的测试的步骤,然后再一一详细的解答:

1.搭建测试环境(基于Spring的测试需要依赖的相关包:test、aop、context和expresstion)

2.在测试类上添加@RunWith注解

3.在测试类上添加@ContextConfiguration注解

4.在测试类中添加一个BeanFactory字段,并且在这个字段上加@Autowired注解

5.在测试中,可以直接通过这个BeanFactory字段拿我们需要的bean(getBean())

好了,我就一一的说一下~

@RunWith注解的作用

1)告诉JUnit,在测试开始的时候,先启动Spring容器,测试结束时,关闭Spring容器

2)自动的把当前这个测试类也加入到Spring容器中进行管理(相当于在spring配置文件中添加了一个<bean>元素)

@ContextConfiguration的作用:

告诉Spring从什么地方加载配置文件,默认情况下是相对路径。

这个有三种写法:1)直接写配置文件的相对路径  2)通过classpath前缀设置文件路径  3)不写

如果@ContextConfiguration后面不指明或者说不写配置文件的路径,那么会按照spring的约定进行加载:

1.测试类同包下的配置文件

2.配置文件名为:测试类-context.xml

@Autowired修饰BeanFactory

使用@Autowired注解,就是自动的把spring创建好的bean容器的引用设置给了这个字段


啦啦啦,完了,与君共勉~

0 0