Junit写法及与spring整合过程详解

junit之前的写法:

//在Before中注入service类
private IUserService userService;
  @Before
public void setUp() throws Exception {
//使用xml的方式
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//使用注解的方式
  ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfiguration.class);
userService = applicationContext.getBean(IUserService.class);
 }

Spring与junit整合:

不需要手动创建Spring容器, 自动把bean注入到测试

1、导入spring-test的依赖, 需要junit

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</artifactId>
   <version>4.3.3.RELEASE</version>
</dependency>

2、在测试类使用spring-test的注解

@RunWith(class)

@ContextConfiguration(指定配置文件)

//测试类运行的环境,在spring环境下运行,在测试类, 注入Spring容器的bean
@RunWith(SpringJUnit4ClassRunner.class)
//在创建spring容器时,指定加载哪个配置文件 - - 相当于之前的手动获取对象
@ContextConfiguration("classpath:applicationContext.xml")
public class UserServiceImplTest {

  @Autowired //注入IUserService
  private IUserService userService;

  @Test
  public void testFindUserById() {
    userService.findUserById(2);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间:2020-06-19

Spring+Junit4进行接口测试实例代码

本文研究的主要是Spring+Junit4进行接口测试的一个相关实例,具体实现代码如下. 1.配置pom.xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.2.RELEASE</version> </dependency> <depende

SpringBoot 单元测试JUnit的使用详解

一.简介 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的: 回归测试:软件或环境修复或更正后的再测试: 单元测试:最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设计和编码的细节: 二.JUnit使用 1.pom.xml中添加JUnit依赖.

详解springboot中junit回滚

springboot中使用junit编写单元测试,并且测试结果不影响数据库. pom引入依赖 如果是IDE生成的项目,该包已经默认引入. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency&g

基于Springboot+Junit+Mockito做单元测试的示例

前言 这篇文章介绍如何使用Springboot+Junit+Mockito做单元测试,案例选取撮合交易的一个类来做单元测试. 单元测试前先理解需求 要写出好的单测,必须先理解了需求,只有知道做什么才能知道怎么测.但本文主要讲mockito的用法,无需关注具体需求.所以本节略去具体的需求描述. 隔离外部依赖 Case1. 被测类中被@Autowired 或 @Resource 注解标注的依赖对象,如何控制其返回值 以被测方法 MatchingServiceImpl.java的matching(Ma

详解Junit 测试之 Spring Test

在做spring相关测试时比较麻烦,如果只用JUnit测试,需要没测有初始化一下applicationContext,效率比较底下,而且也有不足之处. 1.导致多次Spring容器初始化问题 根据JUnit测试方法的调用流程,每执行一个测试方法都会创建一个测试用例的实例并调用setUp()方法.由于一般情况下,我们在setUp()方法 中初始化Spring容器,这意味着如果测试用例有多少个测试方法,Spring容器就会被重复初始化多次.虽然初始化Spring容器的速度并不会太 慢,但由于可能会在

详解Spring Boot Junit单元测试

Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性. 凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半. 刚好前段时间写了一些关于SpringBoot的帖子,正好现在把Junit再拿出来从几个方面再说一下,也算是给一些新手参考了. 那么先简单说一下为什么要写测试用例 1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率 2. 可以自动测试,可以在项目打包前进行测试校验 3. 可以及时发现因

Spring整合Junit的使用详解

我们在编写完Spring的代码后,往往需要测试代码的正确性,这个时候就需要用到单元测试了.我们这里使用的版本是junit4. 一个程序的入口是main方法,但是junit中不存在main方法,是因为junit内部的原理是它自己内部就有个main方法,运行扫描带@Test注解的方法,然后反射调用该方法,完成测试. 调用Spring框架的测试代码: @Test public void function(){ ApplicationContext applicationContext = new Cl

SpringBoot整合Junit实例过程解析

这篇文章主要介绍了SpringBoot整合Junit实例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前提条件:SpringBoot已经整合了Mybatis,至于SpringBoot如何整合Mybatis可参考SpringBoot整合mybatis简单案例过程解析 SpringBoot为什么要整合Juni? SpringBoot整合了Junit后,在写了Mapper接口后,可直接通过Junit进行测试,不用再写Controller层,

Springboot整合通用mapper过程解析

这篇文章主要介绍了springboot整合通用mapper过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 找到springboot工程下的pom.xml文件,导入如下的依赖jar包 <!–配置通用Mapper start–> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starte

SpringBoot整合Dubbo zookeeper过程解析

这篇文章主要介绍了SpringBoot整合Dubbo zookeeper过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 docker pull zookeeper docker run –name zk01 -p 2181:2181 –restart always -d 2e30cac00aca 表明zookeeper已成功启动 Zookeeper和Dubbo• ZooKeeperZooKeeper 是一个分布式的,开放源码的分布式

Springboot整合GuavaCache缓存过程解析

这篇文章主要介绍了springboot整合GuavaCache缓存过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Guava Cache是一种本地缓存机制,之所以叫本地缓存,是因为它不会把缓存数据放到外部文件或者其他服务器上,而是存放到了应用内存中. Guava Cache的优点是:简单.强大.轻量级. GuavaCache适用场景: 1.某些接口或者键值会被查询多次以上: 2.愿意使用或牺牲一些内存空间来提升访问或者计算速度: 3.缓

SpringBoot整合Lettuce redis过程解析

Junit写法及与spring整合过程详解

首先解释一下Lettuce客户端: Lettuce 和 Jedis 的都是连接Redis Server的客户端程序.Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接.Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例. 1.添加依赖 <dependenc

Spring Boot 整合 Shiro+Thymeleaf过程解析

这篇文章主要介绍了Spring Boot 整合 Shiro+Thymeleaf过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导包 <!– springboot 与 shiro 的集成–> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <

创建Maven项目和Spring IOC实例过程解析

这篇文章主要介绍了创建Maven项目和Spring IOC实例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 把如何创建Maven项目和创建Spring IOC的例子分享给大家,希望能对大家有帮助! 一.创建Maven项目 我用的是Intellij IDEA开发工具创建Maven项目的,打开该软件后,直接点击file —>project,如下图所示, 然后就直接跟着我的图片的步骤往下走. 到了这一个就创建好了Maven项目了,然后开

Spring整合MyBatis图示过程解析

这篇文章主要介绍了Spring整合MyBatis图示过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入所需要的jar依赖 !–MyBatis和Spring的整合包 由MyBatis提供–> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <vers

Springboot 集成 lombok.jar过程解析

Junit写法及与spring整合过程详解

这篇文章主要介绍了Springboot 集成 lombok.jar过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 Spring Boot是非常高效的开发框架,lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用. Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法:在使用Lo

SpringBoot Shiro授权实现过程解析

这篇文章主要介绍了SpringBoot Shiro授权实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用Shiro过滤器实现授权 设置好授权拦截跳转的请求地址 /** * 创建ShiroFilterFactoryBean */ @Bean public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") Defaul

原文 

https://www.zhangshengrong.com/p/noXQbDgQ1G/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Junit写法及与spring整合过程详解

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址