Spring的测试

简介

配置与上一篇博客Spring入门案例(包含xml以及注解两种方式的使用)中的配置一样:

https://mp.csdn.net/postedit/103791421

在这篇博客中使用的是传统的Spring测试方法进行的测试,本文将使用Spring测试框架进行测试.

项目目录

传统的Spring测试与使用Spring测试框架测试的区别

Spring容器:我作为类的管理容器,别的类都被我控制,测试类也要被我控制

传统的测试存在的问题

每个测试都要重新启动Spring容器,启动容器的开销大,测试效率低下。

Spring测试框架所需的依赖(使用Spring容器时,才能使用Spring框架测试)

<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.1.5.RELEASE</version>
    <scope>test</scope>
</dependency>

 

 

传统Spring测试

编写测试类,添加Spring测试的注解

扫描二维码关注公众号,回复: 8799895 查看本文章

@ContextConfiguration详解

@ContextConfiguration这个注解通常与 @RunWith(SpringJUnit4ClassRunner.class)联合使用用来测试

当一个类添加了注解@Component,那么他就自动变成了一个bean,就不需要再Spring配置文件中显示的配置了。把这些bean收集起来通常有两种方式,Java的方式和XML的方式。当这些bean收集起来之后,当我们想要在某个测试类使用@Autowired注解来引入这些收集起来的bean时,只需要给这个测试类添加@ContextConfiguration注解来标注我们想要导入这个测试类的某些bean。

XML文件通过<context:component-scan base-package="com.xiongluoluo.bean" />标签将包下的bean全都自动扫描进来。

下面我们就可以测试了。(一定要注意扫描的范围)

@ContextConfiguration括号里的locations = {"classpath*:/*.xml"}就表示将class路径里的所有.xml文件都包括进来,刚刚创建的那么XML文件就会包括进来,那么里面自动扫描的bean就都可以拿到了,此时就可以在测试类中使用@Autowired注解来获取之前自动扫描包下的所有bean

classpath和classpath*区别:

classpath:只会到你的class路径中查找找文件。

classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。

错误:

正确:

这两个地方一定要对应上,如果applicationContext直接在resources文件下,那么加不加/都一样,如果在包里面,那么一定要写全,不然编译直接报错!

参考文章:https://www.cnblogs.com/bihanghang/p/10023759.html

发布了100 篇原创文章 · 获赞 7 · 访问量 7559

猜你喜欢

转载自blog.csdn.net/qq_40245464/article/details/103793168