目录

  • 一、spring整合 junit 问题解析
  • 二、Spring 整合 junit 的配置
    • 1.加入架包
    • 2.@Runwith
    • 3.@ContextConfiguration

一、spring整合 junit 问题解析

  1. 应用程序的入口

    • main 方法
  2. Junit单元测试中,没有 main 方法也能执行
    1. junit 集成了一个 main 方法
    2. 该方法就会判断当前测试类中那些方法有 @Test 注解
    3. junit 就让有 Test 注解的方法执行
  3. junit 不会管我们是否采用 spring 框架
    1. 在执行测试方法时,junit根本不知道我们是不是使用了 spring 框架
    2. 所以也就不会为我们读取配置文件/配置类创建 spring 核心容器
  4. 由以上三点可知
    • 当测试方法·执行时,没有 IOC 容器,就算写了 Autowired 注解,也无法实现注入

二、Spring 整合 junit 的配置

1.加入架包

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

2.@Runwith

使用 Junit 提供的一个注解把原来的 main 方法替换了,替换成 spring 提供的

这里面要求的是一个字节码,必须是继承 Runner 这个类

3.@ContextConfiguration

告知 spring 的运行期,spring 和 ioc 创建是基于 xml 还是注解的,并且说明位置

  • @ContextConfiguration

    • locations:指定 xml 文件的位置,加上 classpath 关键字,表示在类路径下
    • classes:指定注解类所在地理位置
  • 注意:当我们使用 spring 5.x 版本的时候,要求 Junit 的 jar 必须是 4.12 及以上
package com.test;import com.config.JdbcConfig;
import com.config.SpringConfiguration;
import com.domain.Account;
import com.service.IAccountService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountServiceTest {@AutowiredIAccountService as=null;@Testpublic void testFindAllAccount(){//3.执行方法List<Account> accounts = as.findAllAccount();for (Account account:accounts){System.out.println(account);}}}

转载于:https://www.cnblogs.com/zuiren/p/11437518.html

08-spring整合 junit相关推荐

  1. Spring 整合 Junit

    Spring 整合 Junit 问题 在测试类中,每个测试方法都有以下两行代码: ApplicationContext ac = new ClassPathXmlApplicationContext( ...

  2. Spring的新注解——Configuration、ComponentScan、Bean、Import、PropertySource || spring整合Junit分析

    spring中的新注解 spring整合Junit分析 1.应用程序的入口       main方法 2.junit单元测试中,没有main方法也能执行     junit集成了一个main方法    ...

  3. spring整合junit问题分析

    spring整合Junit分析 1.应用程序的入口     main方法 2.junit单元测试中,没有main方法也能执行     junit集成了一个main方法     该方法就会判断当前测试类 ...

  4. Spring4.x(8)---Spring整合Junit

    Spring整合Junit 在开发基于Spring框架的项目时,发现通过Spring进行对象管理之后,做测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好, ...

  5. Spring 整合junit

    junit需要是4.12版本以上 <dependency><groupId>org.springframework</groupId><artifactId& ...

  6. java day58【 案例:使用 spring 的 IoC 的实现账户的 CRUD 、 基于注解的 IOC 配置 、 Spring 整合 Junit[掌握] 】...

    第1章 案例:使用 spring 的 IoC 的实现账户的 CRUD 1.1 需求和技术要求 1.1.1 需求 1.1.2 技术要求 1.2 环境搭建 1.2.1 拷贝 jar 包 1.2.2 创建数 ...

  7. 如何使用 Spring 整合 junit 单元测试

    文章目录 1.测试类中的问题和解决思路 1.1.问题 1.2.解决思路分析 2.配置步骤 2.1.第一步:拷贝整合 junit 的必备 jar 包到 lib 目录 2.2.第二步:使用@RunWith ...

  8. spring入门第二讲 bean的生命周期 装配方式 Spring整合Junit

    bean的生命周期 实体类 //初始化 public void init(){System.out.println("--初始化--"); }//销毁 public void de ...

  9. java元婴期(21)----java进阶(spring(5)---事务管理AOP事务管理(全自动)spring整合Junit)

    事务管理 事务:一组业务操作ABCD,要么全部成功,要么全部不成功. 特性:ACID 原子性:整体 一致性:完成 隔离性:并发 持久性:结果 隔离问题: 脏读:一个事务读到另一个事务没有提交的数据 不 ...

  10. junit 引入spring 注解管理_第05章 Spring 整合 Junit

    3.1 测试类中的问题和解决思路 3.1.1 问题 在测试类中,每个测试方法都有以下两行代码: ApplicationContext 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常.所 ...

最新文章

  1. auto关键字详解 C++
  2. xxl-job Vs ElasticJob,谁牛?
  3. oracle23290,详细介绍Oracle数据库EM Console重建过程
  4. R6034--ARCENGINE
  5. zend studio 5出来了
  6. 聊一聊Kafka分区的隐藏属性——二次归类
  7. json php input,在php中读取json输入
  8. 关闭mysql密码策略_MYSQL57密码策略修改
  9. Ndarry 拉伸为一个list
  10. 史上最全的MSSQL复习笔记
  11. 计算机操作系统笔记(三)
  12. mysql var和varp的区别_var方差(var和方差的区别)
  13. mysql索引失效的原因
  14. 阿里巴巴编码规范考试答案
  15. dubbo线程池exhausted
  16. ESP32 485光照度
  17. java布道师_JavaWeb主管布道师
  18. FOC控制-以SVPWM理论控制矢量磁场
  19. try{}里面有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?
  20. ikbc机械键盘打字出现重复_再也不怕半夜打字影响家人了——ikbc c104机械键盘评测...

热门文章

  1. js向head中添加js代码
  2. Linux下文本处理命令的使用
  3. 加载Loader.bin
  4. 定义css设备类型-Media Queries图表简介及使用方法
  5. 利用ListView实现新闻客户端的新闻内容图文混排
  6. golang多语言支持
  7. golang中的strings.TrimPrefix
  8. 腾讯面试题:岛屿数量
  9. new com.mysql.jdbc.Driver()为什么Driver会创建两次
  10. 数据结构: 线索化二叉树