当前位置: 首页 > news >正文

idea插件完成junit代码生成,和springboot代码示例

在idea环境下,可以用过插件的方式自动生成juint模板代码。不过具体要需要自己手动编写。
1、安装插件
打开idea,file–settings–plugins,搜索和安装插件(JunitGenerator V2.0和JUnit),安装后,后面的两个勾选都必须选中。
我仅安装JunitGenerator V2.0插件,安装成功后发现两个都存在了。JunitGenerator V2.0为代码生成必要的,JUnit为运行juint单元测试必要的。
在这里插入图片描述
2、配置junit
安装完成插件后,需要重启idea。之后打开settings–other settings,可以看到如下的插件配置页面
(1)、完成如下图的配置
Output Path配置为:

${SOURCEPATH}/../../test/java/${PACKAGE}/${FILENAME}

在这里插入图片描述
(2)、切换到juint4模板页面,进行如下修改
在这里插入图片描述
附完整我的junit4模板配置

######################################################################################## 
## 
## Available variables: 
##         $entryList.methodList - List of method composites 
##         $entryList.privateMethodList - List of private method composites 
##         $entryList.fieldList - ArrayList of class scope field names 
##         $entryList.className - class name 
##         $entryList.packageName - package name 
##         $today - Todays date in MM/dd/yyyy format 
## 
##            MethodComposite variables: 
##                $method.name - Method Name 
##                $method.signature - Full method signature in String form 
##                $method.reflectionCode - list of strings representing commented out reflection code to access method (Private Methods) 
##                $method.paramNames - List of Strings representing the method's parameters' names 
##                $method.paramClasses - List of Strings representing the method's parameters' classes 
## 
## You can configure the output class name using "testClass" variable below. 
## Here are some examples: 
## Test${entry.ClassName} - will produce TestSomeClass 
## ${entry.className}Test - will produce SomeClassTest 
## 
######################################################################################## 
## 
#macro (cap $strIn)$strIn.valueOf($strIn.charAt(0)).toUpperCase()$strIn.substring(1)#end 
## Iterate through the list and generate testcase for every entry. 
#foreach ($entry in $entryList) 
#set( $testClass="${entry.className}Test") 
## 
package $entry.packageName; import org.junit.Test; 
import org.junit.Before; 
import org.junit.After; 
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/** 
* ${entry.className} Tester. 
* 
* @author <weisian> 
* @since <pre>$today</pre> 
* @version 1.0 
*/ 
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {PlatformApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class $testClass { @Before
public void before() throws Exception { 
} @After
public void after() throws Exception { 
} #foreach($method in $entry.methodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
@Test
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
} #end #foreach($method in $entry.privateMethodList) 
/** 
* 
* Method: $method.signature 
* 
*/ 
@Test
public void test#cap(${method.name})() throws Exception { 
//TODO: Test goes here... 
#foreach($string in $method.reflectionCode) 
$string 
#end 
} #end 
} 
#end

3、代码引入junit的必要pom

   <!-- springboot Test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>

4、生成需要的junitTest文件
打开需要生成测试的源文件,在页面上右键选择generate,选择junit Test,选择JUnit4
在这里插入图片描述
可以看到自动生成*Test.java文件,文件路径和源文件一致,仅挂载在test资源下
在这里插入图片描述
这里看到报错是因为启动类我们没有在junit 4模板中导入包,如果模板配置加上导入启动类包的代码,就不会报错。模板未配置的话,也可以自己手动导入包

5、如果是第一次生成test目录的化,需要修改目录属性
(1)、在src目录上,右键按照下图配置成Sources Root
在这里插入图片描述
(2)、在test目录上,右键按照下图配置成Test Sources Root
在这里插入图片描述
6、模板生成的会是源代码中所有定义方法的测试方法,都为空,可以自己调整代码进行数据模拟测试。
一次启动会运行所有的测试方法,每一个测试方法都会先执行一下before,执行完成之后在执行一次after。
如下实例:

package XX.goods.controller;import com.alibaba.fastjson.JSON;
import com.XX.PlatformApplication;
import com.XX.model.ResponseModel;
import com.XX.goods.api.GoodsRepairService;
import com.XX.goods.model.GoodsRepair;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import org.springframework.beans.factory.annotation.Autowired;/*** GoodsRepairController Tester.** @author <weisian>* @version 1.0* @since <pre>05/19/2023</pre>*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {PlatformApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)public class GoodsRepairControllerTest {@Autowiredprivate GoodsRepairService goodsRepairService;@Autowiredprivate GoodsRepairController goodsRepairController;@Beforepublic void before() throws Exception {System.out.println("before");}@Afterpublic void after() throws Exception {System.out.println("after");}@Testpublic void testAddSubmit() throws Exception {System.out.println("testAddSubmit");GoodsRepair byId = goodsRepairService.getById("1b6ea48be18e5576aef49f8f60653888");System.out.println("11" + JSON.toJSONString(byId));}@Testpublic void testFindMyRepairList() throws Exception {System.out.println("testFindMyRepairList");ResponseModel byId = goodsRepairController.getById("", null, null);System.out.println("22" + JSON.toJSONString(byId));}} 

7、右键执行单元测试类查看效果
执行:
在这里插入图片描述
效果:
在这里插入图片描述
上图是全部的日志,也可以点击单个方法查看单个方法的运行日志:
在这里插入图片描述

总结:
idea下需要先安装好插件,重启idea后,配置模板,修改源代码pom后,指定源代码文件生成对应的test工具类,如果是第一次生成,需要修改目录属性。之后就可以根据我们需要编写测试代码了。
运行juint工具类,实际上相当于启动容器后,在调用指定类的所有测试方法。关于注入service时,一定要是@Autowired从容器中获取,不然在before中new serviceImpl,只能引用成功service本身的方法,如果service还引用其他service,就无法满足。

学海无涯苦作舟!!!

相关文章:

idea插件完成junit代码生成,和springboot代码示例

在idea环境下&#xff0c;可以用过插件的方式自动生成juint模板代码。不过具体要需要自己手动编写。 1、安装插件 打开idea&#xff0c;file–settings–plugins&#xff0c;搜索和安装插件&#xff08;JunitGenerator V2.0和JUnit&#xff09;&#xff0c;安装后&#xff0c;后…...

【Redis面试点总结】

1、缓存 1.1、穿透 查询一个空数据&#xff0c;mysql也查不到也不会写入缓存可能导致多次请求数据库 方案一&#xff1a;缓存设空即可&#xff08;可能发生数据不一致就是这条数据有了但此时缓存是空&#xff0c;消耗内存&#xff09; 方案二&#xff1a;布隆过滤器&#x…...

打卡智能中国(五):博士都去哪儿了?

《打卡智能中国》系列更新了几期&#xff0c;有读者表示&#xff0c;很爱看这类接地气的真实故事&#xff0c;也有读者反映&#xff0c;不是电工&#xff0c;就是文员、农民、治沙人&#xff0c;人工智能不是高精尖学科吗&#xff1f;那些学历很高的博士都去哪儿了&#xff1f;…...

[Nacos] Nacos Client获取调用服务的提供者列表 (四)

文章目录 1.Nacos Client获取调用服务的提供者列表1.1 从Ribbon的负载均衡入手到Nacos Client获取调用服务的提高者列表1.2 getServers方法返回分析1.3 通过selectInstances方法查找Instances实例1.4 获取到要调用服务的serviceInfo Nacos Client 从Ribbon负载均衡调用服务。 …...

gcc编译一个程序的步骤(嵌入式学习)

1.预处理&#xff08;Preprocessing&#xff09;&#xff1a; 在这个步骤中&#xff0c;预处理器将处理与#相关的代码&#xff0c;包括展开头文件、删除无用定义和替换宏定义。预处理器会生成一个经过宏替换和条件编译处理的中间文件。 gcc -E xxx.c -o xxx.i2.编译&#xff0…...

邹检验,结构变化识别及其R语言实现

在描述多维数据的维度关系时&#xff0c;线性模型无疑应用最多。然而某些情况下&#xff0c;我们关心随着时间变化或随着样本分组&#xff0c;线性关系的具体参数是否发生了变化&#xff0c;即是否发生结构变化Structural break。邹检验Chow test提供了最基本的一种结构变化显著…...

腾讯云,物联网开发平台产品,动态注册步骤

1. 下载后解压&#xff0c;qcloud_iot_mqtt_sign-master.zip GitHub - tencentyun/qcloud_iot_mqtt_signContribute to tencentyun/qcloud_iot_mqtt_sign development by creating an account on GitHub.https://github.com/tencentyun/qcloud_iot_mqtt_sign 2. 按照readme文…...

Padding, Spacer, Initializer 的使用

1. Padding 的使用 1.1 样式一 1) 实现 func testText1()-> some View{Text("Hello, World!").background(Color.yellow) // 背景颜色//.padding() // 默认间距.padding(.all, 10) // 所有的间距.padding(.leading, 20) // 开始的间距.ba…...

少儿编程 中国电子学会图形化编程等级考试Scratch编程四级真题解析(判断题)2023年3月

2023年3月scratch编程等级考试四级真题 判断题(共10题,每题2分,共20分) 11、在使用自定义积木时,不可以传递布尔型参数 答案:错 考点分析:考查自定义积木的使用,使用自定义积木的时候可以传递数字、文本和布尔型参数,所以错误 12、执行如下图程序后,输出的结果为“…...

Makefile学习笔记

目录 一、概述 1.1 Makefile 介绍 1.2规则 1.3核心 1.4示例 1.5定义命令 1.6 make是如何工作的 1.7、makefile中使用变量 1.8让make自动推导 1.9、另类风格的makefile 1.10、清空目标文件的规则 二、Makefile 总述 2.1、Makefile里有什么&#xff1f; 2.2、 mak…...

C++ 函数模板基础

文章目录 一、什么是函数模板二、函数模板的优点1、代码重用2、类型安全3、可读性4、泛型编程5、性能优化6、库开发 三、函数模板的使用场景1、通用操作2、数据结构与容器操作3、排序与查找算法4、数学与统计函数5、类型转换器6、自定义函数对象 四、模板参数的声明&#xff08…...

CUDA torch reinstall 与杂谈

一 实用技巧 1 从cuda11升级到12 apt-get --purge remove "cuda*" wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sh cuda_12.1.1_530.30.02_linux.run vim ~/.bashrc export PATH/usr/local…...

[230530] 托福TPO口语真题| TPO66~TPO72|XPO|Task1|20:30~21:00

目录 真题 预测题​​​​​​​ 真题 66. Do you agree or disagree with the following statement? Some people believe that a person needs a college education in order to have a successful career. Others believe that a college education is not necessary for…...

【FMC201】基于FMC标准的1路CameraLink Full 输入 子卡模块

产品概述 FMC201是一款CameraLink信号输入&#xff08;采集&#xff09;FMC子卡模块&#xff0c;该模块支持2路CameraLink Base模式或者1路CameraLink Full模式的图像信号输入。板卡具有2个CameraLink端口&#xff08;SDR26&#xff09;&#xff0c;可以作为采集卡使用。 技术指…...

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)

本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误&#xff0c;提供博主的一些解决方法&#xff0c;若有更好的解决方法&#xff0c;大家也可以在评论区发表自己的意见噢&#xff0c;话不多说&#xff0c;开始上菜&#xff1a; 此博主在CSDN发布…...

从零实现一个数据库(DataBase) Go语言实现版 0.介绍

英文源地址 数据库实现步骤细分 1.持久化(Persistence) 我们为什么需要数据库?为什么不是直接把数据dump进文件中. 第一个话题就是持久化. 我们将讨论如果写入文件的过程中程序崩溃了, 或者电源断电了, 文件的状态会是什么样的呢? 文件是否只是丢失了最后一次写操作?或者…...

操作系统-X18 linux日志审计

Linux日志审计 在unix/类unix&#xff08;Linux&#xff09;系统中&#xff0c;日志是内核&#xff08;内存&#xff09;的一部分。 用于记录系统、程序运行中发生的各种事件 通过阅读日志&#xff0c;有助于诊断和解决系统故障 日志文件的分类 ①内核及系统日志 由系统sysl…...

【Vue工程】011-Axios

【Vue工程】011-Axios 文章目录 【Vue工程】011-Axios一、概述1、简介2、官网3、訾博其他相关博客【axios】001-axios概述、特点、文档说明【axios】002-axios发起请求axios封装 二、基本使用1、安装2、创建一个 token 状态3、axios 封装4、使用示例设置 baseURL请求调用拦截器…...

Cy7 NHS ester水溶性七甲川花菁染料标记活性脂477908-53-5

Sulfo-CY7 NHS ester是一种荧光标记试剂&#xff0c;可用于生物分子的荧光标记。它是一种水溶性的N-羟基琥珀酰亚胺酯化合物&#xff0c;具有强烈的荧光信号和高度稳定性。Sulfo-CY7 NHS ester的化学结构为C43H48N3NaO16S2&#xff0c;分子量约为968.98 g/mol。Sulfo-CY7 NHS e…...

利用CX-ONE搭建omron PLC仿真环境

目录 1 安装参考 2 CX-Simulator 2.1 打开软件 2.2 选择PLC配置文件存放位置 2.3 选择PLC类型 2.4 PLC Unit全部选择 2.5 设置FINS通讯 2.6 设置串口通讯 2.7 建立连接 3 CX-Programmer 3.1 新建工程 3.2 设置PLC型号 3.3 设置网络类型 3.4 设置串口通讯 3.5 设…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...