写点什么

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

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

关注

评论

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

金九银十已经过半还没拿到offer?阿里大牛熬夜整理的Java面试总结,网友已被震惊到说不出话!

Java 编程 面试 程序人生 金九银十

全网通用Python点赞器(俗称刷分机器),想知道原理吗?看完本文你自己也能写个

梦想橡皮擦

9月日更

一张图读懂Z-ONE Digital Car

SOA开发者

千万级学生管理系统的考试试卷存储方案

Geek_db27b5

架构作业 - 模块四 存储架构

Leo Zhao

架构训练营

考试系统高并发试卷存储设计方案

Imaginary

你知道怎么离线安装全局 node 模块吗?

编程三昧

大前端 npm Node 离线包 9月日更

滴滴 x StarRocks:极速多维分析创造更大的业务价值

StarRocks

数据库 数据分析 滴滴 Clickhouse StarRocks

Redis可观测最佳实践,5大关键指标最全解析!

观测云

redis

“智感超清”之HDR技术落地实践

百度开发者中心

最佳实践 音视频

谈谈汽车芯片信息安全(上篇)

SOA开发者

2021字节跳动面试总监首发1121道LeetCode算法刷题笔记(含答案)

Java 面试 程序人生 计算机

Python代码阅读(第28篇):计算列表中位数

Felix

Python 编程 Code Programing 阅读代码

华为云GaussDB(for MySQL)2.0全新升级,三大技术大揭秘

华为云开发者联盟

数据库 云原生 GaussDB GaussDB(for MySQL) 华为全联接2021

【存储专栏】打破K/V存储的性能瓶颈

趣链科技

区块链 存储

浏览器测试的三大挑战及解决方案【译】

FunTester

软件测试 测试 FunTester 兼容性测试 浏览器测试

横空出世!复盘B站面试坑我最深的JDK源码剖析,全是干货!

Java 程序员 架构 架构师 计算机

软件定义汽车技术体系研究

SOA开发者

Linux用户/用户组编辑

在即

9月日更

送你一个Python 数据排序的好方法

华为云开发者联盟

Python 数据分析 数据排序

Java变异出现错误:No enclosing instance of type XXX is accessible

华为云开发者联盟

Java

多租户是什么意思?怎么理解?

行云管家

云计算 运维 SaaS

一张图读懂Z-ONE Digital Car

SOA开发者平台

华为云开天aPaaS 上线,服务千万开发者,使能行业场景化创新

华为云开发者联盟

华为云 企业应用 开天aPaaS aPaaS 华为云生态

【墨天轮专访第五期】偶数科技常雷:创新改变世界,深耕云数据仓库

墨天轮

数据库 国产数据库

冲破“薪资”瓶颈,某厂的玩转Java面试指南,他看完涨薪10k了!

Java 程序员 架构 编程语言

等保是强制的吗?企业不办等保有啥处罚?

行云管家

网络安全 等保 等保2.0

一张图读懂Z-ONE Studio Lite

SOA开发者

如何实现一款毫秒级实时数据分析引擎

Shopee技术团队

大数据 数据分析 后端 HBase

一张图读懂Z-ONE Studio Lite

SOA开发者平台

八月热点抢先看:EasyDL图像分割数据自动贴合标注,标注效率提升30倍+

百度大脑

人工智能

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