每次写单元测试都要重复写一些方法、注解等,这里我写了一下测试的基类

(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 测试基类的更多相关文章

  1. python3+selenium框架设计04-封装测试基类

    在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下 ...

  2. 背水一战 Windows 10 (69) - 控件(控件基类): UIElement - Manipulate 手势处理, 路由事件的注册, 路由事件的冒泡, 命中测试的可见性

    [源码下载] 背水一战 Windows 10 (69) - 控件(控件基类): UIElement - Manipulate 手势处理, 路由事件的注册, 路由事件的冒泡, 命中测试的可见性 作者:w ...

  3. 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 ...

  4. Java如何解决脆弱基类(基类被冻结)问题

    概述  大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends.“JAVA设计模式”一书详细阐述了怎样用 ...

  5. EF实体框架数据操作基类(转)

    //----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司 ...

  6. 基类用的this指针

    结论:基类构造函数中的this指针指向的是派生类的对象 测试代码: #include <iostream> using namespace std; class father; fathe ...

  7. Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)

    本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...

  8. WPF开发时光之痕日记本(二)—— MVVM基类

    当我们用MVVM的时候要实现INotifyPropertyChanged,每次都要实现这个接口比较麻烦,所以基类的作用就体现出来了.代码如下: public class ViewModelBase : ...

  9. [theWord] 一种英文字典的基类设计

    theWord --- 一种英文字典的基类设计 使用场景 想写一个应用,来记录自己背单词时候,对每个单词的记忆状况之类的东西.至于为什么做这个,试过了一些背单词软件,并不觉得好用,自己做一个吧. 那么 ...

随机推荐

  1. Oracle v$session视图显示客户端IP地址

    在Oracle数据库中,我们使用session相关视图(v$session.v$active_session_history,dba_hist_active_session_history等)查找问题 ...

  2. day 16内置函数总结

    reversed()l = [1,2,3,4,5]l.reverse()print(l) l = [1,2,3,4,5]l2 = reversed(l)reversed:更加节省内存资源print(l ...

  3. centos 7.6 docker 安装 nextcloud -使用sqlite数据库

    docker search nextcloud docker pull docker.io/nextcloud docker images mkdir /home/nextcloud chmod -R ...

  4. 《C++Primer》第五版习题答案--第六章【学习笔记】

    <C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...

  5. MacBook Pro安装VMware Fusion 11

    下载地址 https://www.vmware.com/cn/products/fusion/fusion-evaluation.html 序列号 TX1NF-PPVRW-A1XAX-X5PVZ-Q7 ...

  6. Linux-redis安装以及客户端搭建

    redis安装: 下载redis数据库,网址:redis官网 将文件放到home或者其他文件夹,cd到文件夹 执行 tar zxvf redis-4.0.2.tar.gz //解压文件 执行make进 ...

  7. [TJOI2007] 足彩投注

    足彩投注 题目概述 题目背景 了解足球彩票的人可能知道,足球彩票中有一种游戏叫做"胜负彩",意为猜比赛的胜负.下面是一些与胜负彩有关的术语 注 :每一组有效组合数据. 投 注:彩民 ...

  8. Spring Aop和Spring Ioc(一)

    Spring Aop Aop: 面向切面编程的本质:面向切面编程,指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来. 1:主要功能:日志记录,性能统计,安全控制,事务处理,异常处理等等. 2 ...

  9. Arduino上搭建ESP8266环境

    我尝试了各种方法都无法在Arduino上安装ESP8266的环境,最后发现离线安装最稳妥. 1. 下载安装包,提取码:pktw 2. 将安装包内所有文件拷贝到C:\Users\Administrato ...

  10. sqli-labs5-10(全程sqlmap)

    sqlmap注入教程:https://www.cnblogs.com/ichunqiu/p/5805108.html 前五关直接可以用默认的sqlmap语法跑: python sqlmap.py -u ...