Java之Spring整合Junit

 更新时间:2023年04月06日 11:54:07   作者:JiangTao_xlili  
Java Spring框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力,本篇文章带你了解如何配置数据源、注解开发以及整合Junit

1 测试类中的问题和解决思路

1.1 问题

  • 在测试类中,每个测试方法都有以下两行代码:
    • ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
    • IAccountService as = ac.getBean("accountService",IAccountService.class);
  • 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。

1.2 解决思路分析

  • 针对上述问题,需要的是程序能自动创建容器
  • junit无法知晓是否使用了 spring 框架,无法创建 spring 容器了,但junit 暴露了一个注解,可以替换掉它的运行器。
  • 需要依靠 spring 框架提供的运行器,可以读取配置文件(或注解)来创建容器,只需要告诉它配置文件在哪就行了。

2 配置步骤

2.1 第一步:拷贝整合 junit 的必备 jar 包到 lib 目录

  • 此处需要注意的是,导入 jar 包时,需要导入一个 spring 中 aop 的 jar 包。

2.2 第二步:使用@RunWith 注解替换原有运行器

@RunWith(SpringJUnit4ClassRunner.class)
public class AccountServiceTest {
}

2.3 第三步:使用@ContextConfiguration 指定 spring 配置文件的位置

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}
  • @ContextConfiguration 注解:
    • locations 属性:用于指定配置文件的位置。如果是类路径下,需要用 classpath:表明
    • classes 属性:用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置。

 2.4 第四步:使用@Autowired 给测试类中的变量注入数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
 
    @Autowired
    private IAccountService as ;
}

3 不把测试类配到 xml 中的原因

  • 第一:当在 xml 中配置了一个 bean,spring 加载配置文件创建容器时,就会创建对象。
  • 第二:测试类只是在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费。

到此这篇关于Java之Spring整合Junit的文章就介绍到这了,更多相关Spring整合Junit内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot的@ControllerAdvice处理全局异常详解

    SpringBoot的@ControllerAdvice处理全局异常详解

    这篇文章主要介绍了SpringBoot的@ControllerAdvice处理全局异常详解,但有时却往往会产生一些bug,这时候就破坏了返回数据的一致性,导致调用者无法解析,所以我们常常会定义一个全局的异常拦截器,需要的朋友可以参考下
    2024-01-01
  • 关于Spring Bean实例过程中使用反射和递归处理的Bean属性填充问题

    关于Spring Bean实例过程中使用反射和递归处理的Bean属性填充问题

    本文带领大家一起学习下在Spring Bean实例过程中如何使用反射和递归处理的Bean属性填充,需要在类 AbstractAutowireCapableBeanFactory 的 createBean 方法中添加补全属性方法,具体操作方法跟随小编一起学习下吧
    2021-06-06
  • Java类加载的过程详解

    Java类加载的过程详解

    这篇文章主要介绍了深入理解Java 类加载全过程的相关资料,小编觉得写的还不错,需要的朋友可以参考下,希望能够给你带来帮助
    2021-09-09
  • Java实现从jar包中读取指定文件的方法

    Java实现从jar包中读取指定文件的方法

    这篇文章主要介绍了Java实现从jar包中读取指定文件的方法,涉及java针对jar文件的读取及查找相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Springboot使用Redis中ZSetOperations实现博客访问量

    Springboot使用Redis中ZSetOperations实现博客访问量

    在日常的网站使用中,经常会碰到页面的访问量,本文主要介绍了Springboot使用Redis中ZSetOperations实现博客访问量,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Java工程中可执行JAR两种打包方式详解

    Java工程中可执行JAR两种打包方式详解

    这篇文章主要为大家详细介绍了Java工程中可执行JAR两种打包方式,一体化可执行包和带外部依赖lib的可执行包,有需要的小伙伴可以学习一下
    2024-04-04
  • Java NIO实战之多人聊天室

    Java NIO实战之多人聊天室

    这篇文章主要为大家详细介绍了Java NIO实战之多人聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java编写日志手机号脱敏工具类

    Java编写日志手机号脱敏工具类

    在开发过程中,很容易将用户敏感信息,例如手机号码、身份证等,打印在日志平台,本文将利用Java编写一个日志手机号脱敏工具类,感兴趣的可以了解下
    2024-12-12
  • SpringBoot项目application.yml文件数据库配置密码加密的方法

    SpringBoot项目application.yml文件数据库配置密码加密的方法

    这篇文章主要介绍了SpringBoot项目application.yml文件数据库配置密码加密的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Springboot框架整合添加redis缓存功能

    Springboot框架整合添加redis缓存功能

    缓存就是一个存储器,在技术选型中,常用 Redis 作为缓存数据库。缓存主要是在获取资源方便性能优化的关键方面。Redis 是一个高性能的 key-value 数据库,接下来通过本文给大家介绍Springboot框架整合添加redis缓存功能,感兴趣的朋友一起看看吧
    2021-11-11

最新评论