SpringBoot 测试基类
每次写单元测试都要重复写一些方法、注解等,这里我写了一下测试的基类
(1) 记录测试方法运行的时间
(2)两个父类方法 print,可打印list和object对象
(3)一个属性 logger 记录日志
(4)DateUtil 是封装的一个处理时间的工具类
下面是代码:
DateUtil.java
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- /**
- * 时间日期格式化
- *
- * @author lixingwu
- */
- public class DateUtil {
- /**
- * <p> 方法描述:毫秒转分钟秒数. </p>
- * <p> 创建时间:2017-12-08 14:07:01 </p>
- * <p> 创建作者:李兴武 </p>
- *
- * @param ms 毫秒数
- * @return xx分钟xx秒
- * @author "lixingwu"
- */
- public static String formatTime(Long ms) {
- Integer ss = 1000;
- Integer mi = ss * 60;
- Integer hh = mi * 60;
- Integer dd = hh * 24;
- Long day = ms / dd;
- Long hour = (ms - day * dd) / hh;
- Long minute = (ms - day * dd - hour * hh) / mi;
- Long second = (ms - day * dd - hour * hh - minute * mi) / ss;
- Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;
- StringBuilder sb = new StringBuilder();
- if (day > 0) {
- sb.append(day).append("天");
- }
- if (hour > 0) {
- sb.append(hour).append("小时");
- }
- if (minute > 0) {
- sb.append(minute).append("分钟");
- }
- if (second > 0) {
- sb.append(second).append("秒");
- }
- if (milliSecond > 0) {
- sb.append(milliSecond).append("毫秒");
- }
- return sb.toString();
- }
- }
BaseSpringBootTest .java
- import com.zhwlt.logistics.utils.DateUtil;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.runner.RunWith;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import org.springframework.util.CollectionUtils;
- import java.util.List;
- /**
- * 测试基类
- */
- @RunWith(SpringJUnit4ClassRunner.class)
- @SpringBootTest
- public abstract class BaseSpringBootTest {
- protected Logger logger = LoggerFactory.getLogger(this.getClass());
- private long time;
- public long getTime() {
- return time;
- }
- public void setTime(long time) {
- this.time = time;
- }
- @Before
- public void setUp() throws Exception {
- this.setTime(System.currentTimeMillis());
- logger.info("==> 测试开始执行 <==");
- }
- @After
- public void tearDown() throws Exception {
- logger.info("==> 测试执行完成,耗时:{} <==",
- DateUtil.formatTime(System.currentTimeMillis() - this.getTime()));
- }
- /**
- * 方法描述:打印list.
- * 创建时间:2018-10-11 00:23:28
- */
- <T> void print(List<T> list) {
- if (!CollectionUtils.isEmpty(list)) {
- list.forEach(System.out::println);
- }
- }
- void print(Object o) {
- System.out.println(o.toString());
- }
- }
使用方法:
测试类继承 BaseSpringBootTest 即可,例如:
- import org.junit.Test;
- import javax.annotation.Resource;
- /**
- * 异步任务 测试
- */
- public class AsyncServiceTest extends BaseSpringBootTest {
- @Resource
- private AsyncService asyncService;
- @Test
- public void AsyncMTest() {
- asyncService.AsyncM();
- System.out.println("==> 测试异步任务");
- }
- }
SpringBoot 测试基类的更多相关文章
- python3+selenium框架设计04-封装测试基类
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下 ...
- 背水一战 Windows 10 (69) - 控件(控件基类): UIElement - Manipulate 手势处理, 路由事件的注册, 路由事件的冒泡, 命中测试的可见性
[源码下载] 背水一战 Windows 10 (69) - 控件(控件基类): UIElement - Manipulate 手势处理, 路由事件的注册, 路由事件的冒泡, 命中测试的可见性 作者:w ...
- SpringBoot测试类启动错误 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
报错 java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @Cont ...
- Java如何解决脆弱基类(基类被冻结)问题
概述 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends.“JAVA设计模式”一书详细阐述了怎样用 ...
- EF实体框架数据操作基类(转)
//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司 ...
- 基类用的this指针
结论:基类构造函数中的this指针指向的是派生类的对象 测试代码: #include <iostream> using namespace std; class father; fathe ...
- Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)
本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...
- WPF开发时光之痕日记本(二)—— MVVM基类
当我们用MVVM的时候要实现INotifyPropertyChanged,每次都要实现这个接口比较麻烦,所以基类的作用就体现出来了.代码如下: public class ViewModelBase : ...
- [theWord] 一种英文字典的基类设计
theWord --- 一种英文字典的基类设计 使用场景 想写一个应用,来记录自己背单词时候,对每个单词的记忆状况之类的东西.至于为什么做这个,试过了一些背单词软件,并不觉得好用,自己做一个吧. 那么 ...
随机推荐
- 802.11 MAC基础
MAC(媒介访问控制层)位于各式物理层之上,控制数据的传输.它负责核心成帧操作以及与有线骨干网络之间的交互. 802.11采用载波监听多路访问/冲突避免(CSMA/CA)机制来控制对传输媒介的访问. ...
- PAT甲级代码仓库
大道至简,知易行难.希望能够坚持刷题. PAT甲级真题题库,附上我的代码. Label Title Score Code Level 1001 A+B Format 20 1001 * 1002 A+ ...
- Linux下的python3,virtualenv,Mysql、nginx、redis等常用服务安装配置
Linux下的python3,virtualenv,Mysql.nginx.redis等常用服务安装配置 学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环 ...
- vscode侧边栏字体大小修改
1.找到安装路径下,workbench.desktop.main.css 文件 C:\z_my_install\Microsoft VS Code\resources\app\out\vs\workb ...
- IntelliJ IDEA 2018.3.2 永久破解
PS:动手能力强的来,手残的去淘宝买吧,大概15块钱1年.建议看完后在动手,有一个全局观,浪费不了多少时间 一. 下载破解补丁文件 链接:https://pan.baidu.com/s/1wFp14t ...
- SpringBoot从1.5.1→2.2.4项目加包扫雷二:打不到符号java: org.springframework.boot.autoconfigure.web.相关配置错误支持包
import org.springframework.boot.autoconfigure.web.DefaultErrorAttributes→org.springframework.boot.we ...
- pyqt5-进度条控制
1.基于自定义类的方式 继承自QProgressBar类,然后重写timerEvent方法,当该组件设置定时器的时候,会自己处理定时的处理方法,完成相应的功能 from PyQt5.Qt import ...
- Python 测试代码 初学者笔记
单元测试 每完成一个单元测试,Python都会打印一个字符: 测试通过打印一个句点:测试引发错误打印E:测试导致断言失败打印F 模块unittest import unittest from name ...
- PAT (Basic Level) Practice (中文)1057 数零壹 (20 分) (按行输入带空格的字符串)
给定一串长度不超过 1 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定 ...
- springBoot代码和依赖分开打包
目的: 1.分离代码和依赖(包括第三方的引入包) 2.分离配置文件到外部 3.修改/META-INF/MANIFEST.MF中加载依赖包的位置和启动类,包含第三方依赖jar包 先查看项目的结构 由于我 ...