在实际项目中很多地方用到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当前时间相关推荐

  1. 史上最轻量​!阿里新型单元测试Mock工具开源了

    简介:为了探索更轻量易用的Mock测试手段,阿里云云效团队尝试给工具减负,在主流Mock工具的基础上让Mock的定义和置换干净利落,最终设计了一款极简风格的测试辅助工具TestableMock,无需初 ...

  2. 单元测试 - mock异常

    单元测试 - mock异常 参考文章: (1)单元测试 - mock异常 (2)https://www.cnblogs.com/jylsgup/p/11154111.html (3)https://w ...

  3. 单元测试mock框架——jmockit实战

    JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...

  4. Go 单元测试--Mock接口实现和对接口打桩

    这是Go语言单元测试系列教程的第4篇,介绍了如何在单元测试中使用gomock和gostub工具mock接口和打桩. 在上一篇<Go单元测试 - 数据库 CRUD 的 Mock 测试>中,我 ...

  5. 单元测试Mock框架--Mockito

    文章目录 目前开发中,单元测试遇到的问题 解决方案--Mock Junit4 + Mockito: Mockito常用注解: Mockito常用方法: Tips: 总结 目前开发中,单元测试遇到的问题 ...

  6. 测试私有方法_史上最轻量!阿里开源了新型单元测试Mock工具

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 访问被 ...

  7. Android单元测试 mock Context,mock静态类的静态方法,测试方法的顺序

    mock Context 我们写单元测试时,经常会用到context对象,但是直接使用context经常报空指针异常 正确的mock方式如下 1.添加变量 @Mock private Context ...

  8. 阿里开源新一代单元测试 Mock 工具!

    TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 访问被测类私有成员:使单元测试能直接调用和访问被测类的私有成员,解决私有成员初始化和私有方法测试的问题 快速M ...

  9. SpringBoot单元测试Mock静态方法

    这两天写单元测试碰到了一个问题,就是这个subnetmap里面的数据格式我不知道是怎么样的,所以直接mock掉返回自己指定的值吧. mockito库并不能 mock静态方法,需要依赖powermock ...

最新文章

  1. 韩国国税局正调查华为当地分公司 回应称“例行常规审计”
  2. mysql数据库优化课程---16、mysql慢查询和优化表空间
  3. Windows Small Business Server 2003 意外关闭 ; 1001, 1013 和 1014 事件记录
  4. POJ 3268 迪杰斯特拉图论 置换找最短路
  5. 「Python」ubuntu使用make命令安装python(带详细解释和防坑指南)
  6. 单片机 c语言 定义i o,【51单片机】普通I/O口模拟SPI口C语言程序
  7. 利用python爬取房价
  8. 分享一个用Axure写的PRD文档
  9. iOS开发——高级篇——线程同步、线程依赖、线程组
  10. 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...
  11. 设计模式学习笔记(十四:单件模式)
  12. c语言 倒计时不清屏_c语言 清屏函数
  13. 数据恢复软件性能大比拼
  14. 第十一届蓝桥杯物联网设计与开发实验(合集)STM32学习
  15. 集成学习方法及思想总结
  16. 外汇EA真的有用吗?外汇EA如何设置
  17. 如何安装2018matlab,MATLAB 2018a软件安装教程
  18. 【Java获取国家法定节假日三种工具类其三】
  19. 良心推荐:看完这 20 部 BBC 神级纪录片,英语水平提升几个 Level!
  20. 鸿蒙时期的修真等级,相关介绍关于小说里的修真和武器等级划分

热门文章

  1. SlidingMenu的使用,结合Fragment(eclipse环境)
  2. http://acm.hrbeu.edu.cn/index.php?act=problemid=1001cid=19 人工湖的公路
  3. koa --- 自制简易的koa-router
  4. javascript --- XMLHttp2级、CORS(跨域资源共享)
  5. html5 --- 使用javascript脚本控制媒体播放
  6. 如何选择合适的监视器?
  7. JavaScript 初学者应知的 24 条最佳实践
  8. Python-memcached的基本使用 - Flynewton成长点滴 - 开源中国社区
  9. 创建自己的共用js库
  10. 工业无线遥控器 SUNRF-1011RC