ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot2整合Junit4和Junit5

2022-06-18 22:36:22  阅读:209  来源: 互联网

标签:E5% boot SpringBoot2 org test import Junit4 Junit5 junit


SpringBoot2整合Junit4和Junit5

一、概述

(一)SpringBoot版本、IDEA、Junit的版本对应

https://blog.csdn.net/weixin_44457062/article/details/122950232#:~:text=Spring%20Boot%20%E5%9C%A8,2.4.0%20%E7%89%88%E6%9C%AC%E4%B9%8B%E5%90%8E%EF%BC%8C%E4%BE%BF%E4%B8%8D%E5%86%8D%E5%85%BC%E5%AE%B9Junit4%E3%80%82%20%E6%89%80%E4%BB%A5%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%AD%A4%E6%97%B6%E4%BD%BF%E7%94%A8Idea%E7%89%88%E6%9C%AC%E5%9C%A82017.3.5%E4%B9%8B%E5%89%8D%E7%89%88%E6%9C%AC%EF%BC%8C%E9%82%A3%E4%B9%88%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%8F%AA%E8%83%BD%E5%BC%95%E7%94%A8Junit5%E3%80%82

(二)官方文档

SpringBoot所有版本官方文档:https://docs.spring.io/spring-boot/docs/

(三)演示环境

Maven 3.6.3
Spring Boot 2.3.4.RELEASE(直接继承spring-boot-starter-parent:2.3.4.RELEASE)
JUnit 4.13.1(自己选的比较新的Junit4依赖)
Junit 5.6.2(spring-boot-starter-test:2.3.4.RELEASE默认的)

二、整合JUnit5

(一)spring-boot-starter-test:2.3.4.RELEASE默认的依赖

The spring-boot-starter-test “Starter” (in the test scope) contains the following provided libraries:
1、JUnit 5 (including the vintage engine for backward compatibility with JUnit 4): The de-facto standard for unit testing Java applications.
2、Spring Test & Spring Boot Test: Utilities and integration test support for Spring Boot applications.
3、AssertJ: A fluent assertion library.
4、Hamcrest: A library of matcher objects (also known as constraints or predicates).
5、Mockito: A Java mocking framework.
6、JSONassert: An assertion library for JSON.
7、JsonPath: XPath for JSON.

(二)引入依赖

The starter also brings the vintage engine so that you can run both JUnit 4 and JUnit 5 tests. If you have migrated your tests to JUnit 5, you should exclude JUnit 4 support, as shown in the following example:(大概意思就是如果只使用JUnit5就要排除掉排除JUnit4支持vintage engine,不排除就是兼容JUnit4和JUnit5的。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
    </exclusions>
</dependency>

(三)测试类代码

package com.online.store.dao;

import com.online.store.product.ProductApplication;
import com.online.store.product.dao.CategoryDao;
import com.online.store.product.entity.CategoryEntity;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import java.util.List;

//ProductApplication是我的主启动类,换成自己的就可以
@SpringBootTest(classes = ProductApplication.class)
public class CategoryDaoTest {
    @Resource
    private CategoryDao categoryDao;

    //注意:整合JUnit5的@Test注解为org.junit.jupiter.api.Test里的
    @Test
    public void selectList() {
        List<CategoryEntity> categoryEntityList=categoryDao.selectList(null);
    }
}

三、整合JUnit4

(一)spring-boot-starter-test:2.3.4.RELEASE默认兼容Junit4的依赖

org.springframework:spring-test:5.2.9.RELEASE
org.springframework.boot:spring-boot-test:2.3.4.RELEASE
#这个就是上面排除的vintage engine依赖
org.junit.vintage:junit-vintage-engine:5.6.2

(二)引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.1</version>
    <scope>test</scope>
</dependency>

(三)测试类代码

package com.online.store.dao;

import com.online.store.product.ProductApplication;
import com.online.store.product.dao.CategoryDao;
import com.online.store.product.entity.CategoryEntity;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;

//整合JUnit4需要加上@RunWith(SpringRunner.class)
@RunWith(SpringRunner.class)
//ProductApplication是我的主启动类,换成自己的就可以
@SpringBootTest(classes = ProductApplication.class)
public class CategoryDaoTest {
    @Resource
    private CategoryDao categoryDao;

    //注意:整合JUnit4的@Test注解为org.junit.Test里的
    @Test
    public void selectList() {
        List<CategoryEntity> categoryEntityList=categoryDao.selectList(null);
    }
}

标签:E5%,boot,SpringBoot2,org,test,import,Junit4,Junit5,junit
来源: https://www.cnblogs.com/sitepoint/p/16389464.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有