写点什么

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:357375
用户头像

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

关注

评论

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

DaaS服务之分布式日志/缓存/对象存储

穿过生命散发芬芳

4月月更

关于K8s中Service Account的一些笔记:Pod内部如何访问K8s集群

山河已无恙

k8s 4月月更

R 编程语言 - 简介

海拥(haiyong.site)

R语言 4月月更

CorelDRAW Graphics Suite2022中文版

茶色酒

cdr2022

从概念、部署到优化,Kubernetes Ingress 网关的落地实践

阿里巴巴云原生

阿里云 Kubernetes 云原生 网关

赛事解析|乒乓球时序动作定位大赛亚军方案分享

百度大脑

Selenium自动化应该避免的测试场景

FunTester

linux之软连接和硬连接的区别

入门小站

Linux

我们在讲的 Database Plus,到底能解决什么样的问题?

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

[Day29]-[数组]将一维数组转变成二维数组

方勇(gopher)

LeetCode 数据结构算法

参加 KubeVela 开源之夏,给你的云计算编程能力加个 Buff

阿里巴巴云原生

阿里云 云原生 开源之夏

你竟不劝我坚持

QualityFocus

职业规划 职业生涯规划

在线Excel转SQL工具

入门小站

工具

资源画像,让容器资源规格的填写不再纠结

阿里巴巴云原生

阿里云 容器 云原生

高精度轻量级图像分割SOTA模型PP-LiteSeg重磅开源!

百度大脑

Apache ShardingSphere 代码格式化实战 —— Spotless

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

RTC 科普视频丨聊聊空间音频的原理与其背后的声学原理

声网

RTE技术详解 空间音频

[Day28]-[二叉树]左叶子之和

方勇(gopher)

LeetCode 数据结构与算法

清华校友走进百度 用科技赋能产业智能化转型

百度大脑

虎符Hoo即将上线现货网格交易功能

区块链前沿News

虎符交易所

云原生时代的搜索服务算力管理

百度Geek说

架构 云原生 后端

多方系统集成的启示

QualityFocus

集成测试 系统集成

linux之软连接和硬连接的区别

入门小站

Linux

浮点数-Float-Double转二进制

入门小站

工具

细数云上综合治理始末,华为云联创营解码企业运维之道

极客天地

制造蝴蝶飓风,微众区块链的蝶变和ESG新使命

脑极体

2022语言与智能技术竞赛再升级,推出NLP四大前沿任务

百度大脑

百度天工AIoT打造农业种植方案,用数字经济助力建设农业新模式

百度大脑

ECA 认证备考指南

Se7en

重学架构之电商秒杀系统

陈华英

架构实战营

参赛必看,2022语言与智能技术竞赛赛题任务解读直播!

百度大脑

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