

Java单测mock new Date()
source link: https://last2win.com/2021/03/28/java-mock-new-date/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java程序中经常会用到new Date()
来获取当前系统时间,而单测时通常需要指定日期,因为不同时间程序会有不同响应。
普通的Mockito
无法实现mock时间,需要使用JMockit
或者Powermock
JMockit
先添加JMockit
依赖:
testImplementation 'junit:junit:4.13'
testImplementation 'org.jmockit:jmockit:1.49'
使用JMockit
mock 时间:
import java.util.Calendar;
import java.util.Date;
import mockit.Mock;
import mockit.MockUp;
import org.junit.jupiter.api.Test;
import org.springframework.util.Assert;
public class ServingWebContentApplicationTest {
@Test
public void mockTime() {
new MockUp<System>() {
@Mock
public long currentTimeMillis() {
Date fake = new Date(121, Calendar.APRIL, 29);
return fake.getTime();
}
};
Assert.isTrue(new Date().equals(new Date(121, Calendar.APRIL, 29)), "mock time failed");
}
}
Powermock
我在网上找了很多用Powermock
的教程,但每一个方法能用,我这里就不展示了。
Recommend
-
33
0. 为什么人人都讨厌写单测 在之前的关于
-
30
在之前的关于swagger文章里提到过,程序员最讨厌的两件事,一件是别人不写文档,另一件就是自己写文档。这里如果把文档换成单元测试也同样成立。每个开发人员都明白单元测试的作用,也都知道代码覆盖率越高越好。高覆盖率的代码,相对来说出现 BUG 的概率就越低,...
-
15
一、引言 我是一名中间件 QA,我对应的研发团队是有赞 PaaS,目前我们团队有很多产品是使用 go 语言开发,因此我对 go 语言项目的单测覆盖率、集成以及增量测试覆盖率统计与分析做了探索。 二、单测覆盖率以及静态代...
-
37
前言 最近在给项目代码补单测,React 项目,第一反应就是成熟的解决方案 Jest + enzyme。按说读读 API,三两下应该就能写好,然而过程中却有点磕碰,遇到一些始料未及的问题。有些是关于 enzyme 的使用方法问题,有些则是对单...
-
9
导读: 线上系统异常问题一直以来都是使人”闻风丧胆”的,传统手段在解决这类问题时面临着相应的技术瓶颈。基于此,探索基于...
-
3
本文整理自前不久在组内组织的一次单元测试分享。背景主要是后续我们的持续集成流程中会增加单测覆盖率这个一个卡点,大家之后需要慢慢将手头上的服务的单测补充起来。然后就发现组里的人对单测这个事情的理解有很大的偏差,并且有些人不知道怎么去写单...
-
8
研效优化实践:Python 单测——从入门到起飞已认证的官方帐号作者:uniquewang,腾讯安全平台后台开发工程师 福生于微,积微成著,一行代码的精心调...
-
3
这是Go语言单元测试从零到溜系列教程的第1篇,介绍了如何使用httptest和gock工具进行网络测试。 Go语言单元测试从零到溜系列共7篇,本文是第1篇,介绍了如何使用httptest和gock工具进行网络测试。 httptest 在Web开发场景下的单元测...
-
8
这是Go语言单元测试从零到溜系列教程的第3篇,介绍了如何在单元测试中使用gomock和gostub工具mock接口和打桩。 在上一篇《Go单测从零到溜系列2—数据库测试》中,我们介绍了如何...
-
5
Java: NPE和单测覆盖率 Java: NPE和单测覆盖率 切到新语言就是不断地踩坑呀。手头有一个函数,输入...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK