2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

一文带你搞懂从动态代理实现到Spring AOP

华为云开发者联盟

spring jdk 容器 aop 动态代理

基于机器学习的逻辑回归模型

无誉

腾讯T3大佬亲自教你!一起刷完了这份1307页的安卓面试宝典吧,吐血整理

欢喜学安卓

android 程序员 面试 移动开发

Redis中哈希分布不均匀该怎么办

Java 数据库 编程 程序员 面试

深度解读设备的“万能语言”鸿蒙系统的分布式软总线能力

华为云开发者联盟

鸿蒙 操作系统 智能设备 HarmonyOS 分布式软总线

Nine Ring九环智能合约软件开发|Nine Ring九环智能合约APP系统开发

系统开发

数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

华为云开发者联盟

数据 GaussDB 数据迁移 gds FDW

Elasticsearch document 的 _source 元数据

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

软件测试--cookie学习

测试人生路

软件测试

程序员的简历,要注意以下几点

田维常

简历

如何理解新技术带来的新资产类别?

CECBC

区块链

2020年终总结:回顾、反思、期待

书旅

年终总结

2021面试脚本!夜读互联网Java开发27大专题,终入P7

比伯

Java 程序员 面试 计算机 技术宅

如何成为一名优秀的技术Leader?

架构精进之路

成长笔记 七日更 28天写作

MDF智能合约APP开发|MDF智能合约软件系统开发

系统开发

联动链金-魔方支付体系整理

图说丨京东《技术重构社会供应链——未来科技趋势白皮书》

京东科技开发者

京东 智能供应链

点位盘,点位盘开发,点位盘合约交易。

v16629866266

美团图数据库平台建设及业务实践

NebulaGraph

图数据库

数字货币呼之欲出,但这些套路须警惕!

CECBC

数字货币

Linux:为什么性能工具需要 BPF 技术

博文视点Broadview

2021年数字货币时代加速到来

CECBC

数字人民币

第一周

Richard

爱了爱了!带着问题深入学习Handler,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

mq消费幂等总结

A

MQ 幂等性 db

Spring Boot 中集成ActiveMQ

武哥聊编程

Java springboot SpringBoot 2 28天写作 Activemq

数据结构与算法 - 哈夫曼树

ios 数据结构与算法

数字钱包系统软件开发|数字钱包APP开发

系统开发

HPC on Volcano:容器在气象行业HPC高性能计算场景的应用

华为云原生团队

大数据 容器 云原生 k8s 分布式计算

基于用户画像/AB测试的产品定价

无誉

悟透前端 | ECMAScript 6的Map映射

devpoint

json 大前端 map ES6

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