10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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

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

关注

评论

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

从试验田到深水区,AI落地的福州答卷

脑极体

AI

Web端实时通信技术SSE在携程机票业务中的实践应用

JackJiang

网络编程 即时通讯 IM

1688商品评论API接口攻略

tbapi

1688商品评论接口 1688评论API 1688评论数据采集

Shiro简介及SpringBoot集成Shiro(狂神说视频简易版)

刘大猫

人工智能 算法 数据分析 权限控制 shiro

【HarmonyOS 5】鸿蒙中的UIAbility详解(二)

GeorgeGcs

别再堆MCP工具了!好用的AI Agent,始于一个“懂你”的System Prompt

RockBot

鸿蒙仓颉语言开发实战教程:实现商品分类页

幽蓝计划

[大厂实践] LLM加速大规模测试迁移

俞凡

人工智能 测试

5 分钟搞定 Go 自定义结构体标签

俞凡

golang

【HarmonyOS 5】鸿蒙中的UIAbility详解(一)

GeorgeGcs

华为云MaaS解锁DeepSeek-R1-0528超能推理开箱即用AI力!

YG科技

鲲鹏Arm+麒麟V10,国产化信创 K8s 离线部署保姆级教程

北京好雨科技有限公司

k8s rainbond 容器平台 企业号 5 月 PK 榜 信创国产化

DeepSeek‑R1-0528 重磅升级:蚂蚁百宝箱免费、无限量调用

猫头虎

人工智能 DeepSeek DeepSeek v3 DeepSeek R1 模型

1688店铺订单接口指南攻略

tbapi

1688订单物流接口 1688店铺订单接口 1688店铺订单详情接口

基于YOLOv8的农业虫害检测102 类农业害虫识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能

GeorgeGcs

鸿蒙 文档扫描 表格扫描

鸿蒙ArkTS | Badge 信息标记组件自学指南

李游Leo

鸿蒙 HarmonyOS

华为浏览器上线高考频道,打造一站式智慧助考服务

最新动态

SpringBoot项目的html页面使用axios进行get post请求

刘大猫

人工智能 算法 post GET axios

全新小艺上车鸿蒙智行尊界S800,启领智慧出行新范式

极客天地

鸿蒙仓颉语言开发教程:自定义弹窗

幽蓝计划

战略实践:7 步改变未来

俞凡

战略

征程 6EM 常见 QConfig 配置解读与示例

地平线开发者

自动驾驶 算法工具链 地平线征程6

【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解

GeorgeGcs

H5 HarmonyOS 小游戏 Laya 构建鸿蒙

高效拆分用户故事

俞凡

敏捷开发

《算法导论(第4版)》阅读笔记:p173-p174

codists

算法

明基专业编程显示屏618优惠,程序员入手就趁现在!

陈老老老板

基于YOLOv8的汽车车牌位置实时检测项目【完整源码数据集+PyQt5界面+完整训练流程+开箱即用!】

申公豹

yolov8

【HarmonyOS 5】鸿蒙中的UIAbility详解(三)

GeorgeGcs

详解鸿蒙开发如何上传三方库到ohpm仓库

幽蓝计划

业务流程建模指南

俞凡

架构

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