写点什么

Moq——.NET 的 Mocking 库

  • 2008-08-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-08-18 20:357365
用户头像

发布了 90 篇内容, 共 15.5 次阅读, 收获喜欢 11 次。

关注

评论

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

智能手持测温枪接入阿里云IoT物联网平台实践——实践类

阿里云AIoT

小程序 监控 物联网 开发工具 消息中间件

东数西算下,液冷数据中心为何日趋重要?

GPU算力

数据中心 高性能计算 东数西算 液冷散热

在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

HarmonyOS SDK

[译]Java web 应用和虚拟线程

followtry

Java spring 虚拟线程 loom

IoT物联网平台20条实用手册——实践类

阿里云AIoT

监控 物联网 消息中间件 数据格式 网络性能优化

SQL 层功能改进 - lookupJoin 的优化

KaiwuDB

SQL优化 KaiwuDB lookupJoin

智能AI量化现货合约跟单交易机器人软件开发

开发微hkkf5566

强将带新兵?试试少代码!

世开 Coding

开发框架 快速开发平台 Jmix

IoT平台云端通用数据解析脚本实践——实践类

阿里云AIoT

小程序 监控 物联网 存储 数据采集

数据合规可信计划暨国内首个数据合规标准发布!易观作为标准起草单位应邀参加

易观分析

数据 数字化 信息化

“数字经济新引擎”筑牢中国智造基石

Openlab_cosmoplat

开源 物联网 数字化转型 工业 制造

混合式App开发模式下的热更新技术方案,你知道多少?

没有用户名丶

小程序容器

云原生是什么?核心概念和应用方法解析

FinFish

小程序 云原生 小程序容器 小程序化 小程序技术

IoT设备模拟器小程序使用手册——实践类

阿里云AIoT

小程序 开发者 监控 物联网 传感器

Chrome插件:阿里云IoT设备证书三元组转化生成二维码——实践类

阿里云AIoT

小程序 开发者 物联网 Web App开发

架构实战营10期-作业8

炮仗

企业级应用建设之道:高代码+低代码开发

力软低代码开发平台

工业元宇宙:智能制造的未来形态

Openlab_cosmoplat

开源 工业 制造 区块链、 元宇宙

一文教你轻松创建数字孪生实例——实践类

阿里云AIoT

阿里云 物联网 IoT

IoT物联网平台:网关与子设备开发实战——实践类

阿里云AIoT

Java 物联网 开发工具

微服务架构与小程序容器的结合:多领域应用的利器

FinFish

小程序 微服务架构 小程序容器 小程序化

LeetCode题解:2363. 合并相似的物品,双指针,详细注释

Lee Chen

JavaScript LeetCode

索信达董事长吴辅世:忆Teradata中国创业岁月,看未来数据精神永流传

索信达控股

Apache Flink 入选 2022 年“科创中国”开源创新榜

Apache Flink

大数据 flink 实时计算

面试半年,总结了1000道2023年Java架构师岗面试题

小小怪下士

Java 程序员 面试 后端

LeetCode题解:2363. 合并相似的物品,哈希表,详细注释

Lee Chen

JavaScript LeetCode

分析视角下银行业数据平台架构演进及实现

酷克数据HashData

云原生架构如何落地实践

Onegun

微服务 云原生 小程序容器

今天,我想去一个平行世界

阿里云CloudImagine

云计算 云渲染

今天 4 点,龙蜥自动化运维平台SysOM 2.0的诊断中心功能介绍 | 第 66-68 期

OpenAnolis小助手

开源 系统运维 龙蜥大讲堂 SysOM 诊断

易观:商业银行持续发力趣味营销活动,助力提升手机银行用户活跃度

易观分析

数字化 经济 手机银行

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