专家分享选择开源和自研道路上的考量以及具体的业务案例,点击查看 了解详情
写点什么

Moq——.NET 的 Mocking 库

  • 2008 年 8 月 18 日
  • 本文字数:665 字

    阅读完需:约 2 分钟

Moq 是利用诸如 Linq 表达式树和 Lambda 表达式等.NET 3.5 的特性,为.NET 设计和开发的 Mocking 库。它的目标是让 Mocking 以一种自然的方式与现有单元测试进行集成,使它更加简单、直观,以避免开发人员被迫重写测试或学习需要大量录制 / 播放的 Mock 框架。Moq 的目标就是为了帮助那些编写测试代码,但却不使用 Mocking 框架的开发人员。Moq 的设计原则就是以极低的门槛来获取良好的重构能力。 Moq 提供了以下特性:

  • 强类型:不支持使用字符串来设置期望(expectations),也不支持 Object 类型的返回值和约束条件
  • 与 VS 的完美集成:所有的特性都全面支持 VS 智能感知,从设置期望,到指定引用方法的参数、返回值等全部支持。
  • 不再需要学习录制 / 播放,只需要构建你自己的 Mock,设置好你的期望;调用它,然后有选择地验证它们即可。
  • 正如前三个特性所描述的,这让它的学习曲线极低,大多数情况下,你甚至无须阅读文档。
  • 细粒度的控制胜过使用一个简单的 MockBehavior 枚举器来实现对行为的 Mock(再也不用去学习 Mock、Stub、Fake 和动态 Mock 等之间的理论差异了)
  • 可以对接口和类进行 Mock
  • 重载期望:可以在全局设置时给 Mock 方法设置缺省的期望,在测试方法中可以根据需要对它进行重载。
  • 传入构造参数到被 Mock 类
  • 使用 Mock 拦截和引发事件

Moq 是开源的,而且期待更多人的贡献,它的源码、二进制文件包以及一个入门指南都托管在Google Code 上。 Daniel Cazzulino 是Moq 的主要维护者,他已经发布了一系列的文章来说明为什么创建Moq,并提供了几个很好的示例以展示如何有效地使用Moq。

查看英文原文 Moq .NET Mocking Library

2008 年 8 月 18 日 20:356788
用户头像

发布了 89 篇内容, 共 10.7 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

netty系列之:NIO和netty详解

程序那些事

Java Netty 程序那些事 2月月更

【Python】第二章(条件语句和循环语句)

泽En

Python 2月月更

哈佛商业评论对话王文京:如何制定正确的数智化战略和路径?

用友BIP

用友 数智化

【TcaplusDB知识库】RESTfulAPI. for List表-[PB] ListDeleteAllRecords.介绍

数据人er

2022年中国数字孪生城市市场分析:孪生城市产业经济全域协作

易观分析

数字孪生

【TcaplusDB知识库】RESTfulAPI. for List表-[PB] ListDeleteAllRecords介绍

数据人er

AngularJS四大特征

小谷哥

angular.js

中国信息通信研究院云计算与大数据研究所一行莅临亚信科技考察交流

亚信AntDB数据库

全链路灰度这样做,新需求迭代上线也能放心干饭

阿里巴巴云原生

阿里云 微服务 云原生 灰度

私有模块上线,用它来开发外包项目,真香!

ModStart开源

一句话回顾会

Bruce Talk

敏捷 Agile 回顾会 Coach/Facilitate

丰e足食将大量引入算法人才 加快无人零售算法研发和应用

江湖老铁

TcaplusDB君 · 行业新闻汇编(一)

数据人er

那一年,我们在巴塞罗那找到的「ONES 图腾」

万事ONES

ONES

加速企业数据应用创新的核心能力——灵活性

用友BIP

数据中台 创新 用友

数据治理:从一把手工程到数据文化!

用友BIP

数据治理 用友 用友iuap 数据文化

中台和低代码,“零和”还是“竞合”?

WorkPlus Lite

TDengine在蔚来能源系统的落地实践

TDengine

MySQL 数据库 tdengine 物联网 时序数据库

docker 批量删除 none 镜像

AlwaysBeta

Docker 容器 镜像 docker image docker build

低代码实现探索(三十二)多版本开发/本地开发

零道云-混合式低代码平台

大数据培训Kafka生产优化之集群重要参数配置与优化设置(二)

小谷哥

【邀请函】3月4日平台赋能 数智创新 ———用友BIP PaaS云平台iuap数智化百城论坛·济南站

用友BIP

用友 用友iuap 企业数智化 平台赋能 数智创新

千万级车联网 MQTT 消息平台架构设计|车联网平台搭建从入门到精通 02

EMQ映云科技

架构 车联网 物联网 mqtt 分布式消息流平台

【TcaplusDB知识库】RESTfulAPI. for List表-[PB] [PB] ListDeleteRecord.介绍

数据人er

开发之痛:稳定的测试环境,怎么就那么难 | 研发效能提升36计

阿里云云效

云计算 阿里云 DevOps 云原生 测试

【TcaplusDB知识库】RESTfulAPI. for List表-[PB] [PB] ListBatchDeleteRecords.介绍

数据人er

什么是数字化转型?

WorkPlus Lite

面向体验的视频云-火山引擎增长沙龙

面向体验的视频云-火山引擎增长沙龙

Moq——.NET的Mocking库_.NET_Al Tenhundfeld_InfoQ精选文章