报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

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

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

关注

评论

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

“易+”开源计划丨基于标准 WebRTC 低延迟直播开源实践

网易智企

WebRTC 低延时

亚马逊AWS特约评委揭秘FinClip黑客松获胜秘诀

Geek_99967b

hackathon 小程序开发

Java Optional 初始为空

HoneyMoose

佬技术总监,是这样优化产线MySQL数据库配置的

梦想橡皮擦

5月月更

Fruity Loops Studio20.9中文版水果软件

茶色酒

FL STUDIO20.9 FL Studio

基于Keras的视觉结算平台构想

工程师日月

人工智能 keras 5月月更

【C 语言】指针 Four 之[" * & 的应用"、通过指针交换变量值、指针变量的说明、 指针类型的意义(1)、指针类型的意义(2)]

謓泽

5月月更

架构实战营模块 1 作业

Naoki

架构实战营

ffmpeg命令参数类型

Loken

音视频 5月月更

从Flutter浅谈跨平台移动开发框架

Geek_99967b

flutter 移动开发 小程序开发

FinClip SaaS 版本重磅上线,打开全行业技术普惠大门

Geek_99967b

SaaS 小程序容器 小程序开发

天才制造者:独行侠、科技巨头和AI |深度学习崛起十年

OneFlow

人工智能 神经网络 深度学习 DeepMind 开源公司

LSM-Tree - LevelDb 源码解析

懒时小窝

Lsm LSM树 LSM-Tree level

设计模式之学习命令模式

乌龟哥哥

5月月更

Spring Boot 输出 Web 请求响应报文

TRAMP

Spring Boot

Mindmanager2022绿色版本

茶色酒

Mindmanager Mindmanager2022

在FinClip Hackathon中夺冠是一种什么样的体验?

Geek_99967b

hackathon 小程序开发

[ kitex 源码解读 ] 限流

baiyutang

Go 微服务 云原生 5月月更 kitex

Druid 连接池源码阅读 08

石小天

【刷题第13天】剑指 Offer 06. 从尾到头打印链表

白日梦

5月月更

JVM进阶(十四)——初识JAVA 类加载机制

No Silver Bullet

Java 类加载机制 5月月更

(win)C、C++处理文件名称

DS小龙哥

5月月更

详解CVE-2022-0847 DirtyPipe漏洞

华为云开发者联盟

安全 漏洞 splice syscall 内存未初始化

[模块一作业]

wuli洋

学生管理系统架构设计

Geek_e8bfe4

Docker下Java文件上传服务三部曲之一:准备环境

程序员欣宸

Java Docker 5月月更

透过实例demo带你认识gRPC

华为云开发者联盟

spring gRPC 数据编码 请求映射

SAP Marketing Cloud Contact 模型的导入配置和数据合并原理

汪子熙

Cloud SAP 云产品 5月月更

代码之外:关于校招 Offer 选择的问题

宇宙之一粟

offer 代码之外 5月月更

强化 WordPress 的 11 种有效方法

海拥(haiyong.site)

安全 WordPress 5月月更

Nacos源码系列—订阅机制的前因后果(下)

牧小农

源码 nacos

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