单元测试mock当前时间
在实际项目中很多地方用到DateTime.Now,这个时间是时时变化的。如果要进行单元测试对比预期结果时,这个时间无法预测,可以添加如下两个时间类
namespace Common.Helper {/// <summary>/// 获取当前时间/// However, when unit testing with static state, always remember to tear down your fixture by calling ./// </summary>public abstract class TimeProvider{private static TimeProvider current =DefaultTimeProvider.Instance;public static TimeProvider Current{get { return TimeProvider.current; }set{if (value == null){throw new ArgumentNullException("value");}TimeProvider.current = value;}}public abstract DateTime Now { get; }public static void ResetToDefault(){TimeProvider.current = DefaultTimeProvider.Instance;}}public class DefaultTimeProvider : TimeProvider{private readonly static DefaultTimeProvider instance =new DefaultTimeProvider();private DefaultTimeProvider() { }public override DateTime Now{get { return DateTime.Now; }}public static DefaultTimeProvider Instance{get { return DefaultTimeProvider.instance; }}} }
View Code
在实际代码中使用方法:
var now = TimeProvider.Current.Now;
单元测试模拟方法:
var timeMock = new Mock<TimeProvider>(); timeMock.SetupGet(tp => tp.Now).Returns(new DateTime(2010, 3, 11)); TimeProvider.Current = timeMock.Object;
需要用到moq4模拟对象
转载于:https://www.cnblogs.com/missile/p/7065831.html
单元测试mock当前时间相关推荐
- 史上最轻量!阿里新型单元测试Mock工具开源了
简介:为了探索更轻量易用的Mock测试手段,阿里云云效团队尝试给工具减负,在主流Mock工具的基础上让Mock的定义和置换干净利落,最终设计了一款极简风格的测试辅助工具TestableMock,无需初 ...
- 单元测试 - mock异常
单元测试 - mock异常 参考文章: (1)单元测试 - mock异常 (2)https://www.cnblogs.com/jylsgup/p/11154111.html (3)https://w ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...
- Go 单元测试--Mock接口实现和对接口打桩
这是Go语言单元测试系列教程的第4篇,介绍了如何在单元测试中使用gomock和gostub工具mock接口和打桩. 在上一篇<Go单元测试 - 数据库 CRUD 的 Mock 测试>中,我 ...
- 单元测试Mock框架--Mockito
文章目录 目前开发中,单元测试遇到的问题 解决方案--Mock Junit4 + Mockito: Mockito常用注解: Mockito常用方法: Tips: 总结 目前开发中,单元测试遇到的问题 ...
- 测试私有方法_史上最轻量!阿里开源了新型单元测试Mock工具
点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 访问被 ...
- Android单元测试 mock Context,mock静态类的静态方法,测试方法的顺序
mock Context 我们写单元测试时,经常会用到context对象,但是直接使用context经常报空指针异常 正确的mock方式如下 1.添加变量 @Mock private Context ...
- 阿里开源新一代单元测试 Mock 工具!
TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 访问被测类私有成员:使单元测试能直接调用和访问被测类的私有成员,解决私有成员初始化和私有方法测试的问题 快速M ...
- SpringBoot单元测试Mock静态方法
这两天写单元测试碰到了一个问题,就是这个subnetmap里面的数据格式我不知道是怎么样的,所以直接mock掉返回自己指定的值吧. mockito库并不能 mock静态方法,需要依赖powermock ...
最新文章
- 韩国国税局正调查华为当地分公司 回应称“例行常规审计”
- mysql数据库优化课程---16、mysql慢查询和优化表空间
- Windows Small Business Server 2003 意外关闭 ; 1001, 1013 和 1014 事件记录
- POJ 3268 迪杰斯特拉图论 置换找最短路
- 「Python」ubuntu使用make命令安装python(带详细解释和防坑指南)
- 单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序
- 利用python爬取房价
- 分享一个用Axure写的PRD文档
- iOS开发——高级篇——线程同步、线程依赖、线程组
- 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...
- 设计模式学习笔记(十四:单件模式)
- c语言 倒计时不清屏_c语言 清屏函数
- 数据恢复软件性能大比拼
- 第十一届蓝桥杯物联网设计与开发实验(合集)STM32学习
- 集成学习方法及思想总结
- 外汇EA真的有用吗?外汇EA如何设置
- 如何安装2018matlab,MATLAB 2018a软件安装教程
- 【Java获取国家法定节假日三种工具类其三】
- 良心推荐:看完这 20 部 BBC 神级纪录片,英语水平提升几个 Level!
- 鸿蒙时期的修真等级,相关介绍关于小说里的修真和武器等级划分
热门文章
- SlidingMenu的使用,结合Fragment(eclipse环境)
- http://acm.hrbeu.edu.cn/index.php?act=problemid=1001cid=19 人工湖的公路
- koa --- 自制简易的koa-router
- javascript --- XMLHttp2级、CORS(跨域资源共享)
- html5 --- 使用javascript脚本控制媒体播放
- 如何选择合适的监视器?
- JavaScript 初学者应知的 24 条最佳实践
- Python-memcached的基本使用 - Flynewton成长点滴 - 开源中国社区
- 创建自己的共用js库
- 工业无线遥控器 SUNRF-1011RC