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

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

关注

评论

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

当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界

阿里云大数据AI技术

深度学习 PyTorch 知识图谱 企业号十月 PK 榜 图文生成

Java Web(二)MyBatis

浅辄

Java web mybaits 11月月更

Jenkins 安全tips

SEAL安全

安全 jenkins

fastposter v2.10.0 简单易用的海报生成器

物有本末

海报 小程序营销 海报生成 海报小程序

BSC/BNB链质押挖矿dapp系统开发(案例演示)

开发微hkkf5566

合约广告平台架构演进实践

百度Geek说

业务架构 企业号十月 PK 榜 广告B端系统

【电商实战01】如何快速编写api层和model层?

王中阳Go

golang 高效工作 学习方法 11月月更 电商实战

阿里云丁宇:交付管理一体化的云原生应用平台 KubeVela 再升级

云布道师

云原生 2022云栖大会

web3.0区块链挖矿游戏dapp系统开发合约定制(成熟技术)

开发微hkkf5566

Vue组件是怎样挂载的

yyds2026

Vue

一个 MySQL 隐式转换的坑,差点把服务器整崩溃了

Java全栈架构师

Java MySQL 数据库 程序员 后端

Webpack配置实战

Geek_02d948

webpack

Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统

云布道师

云原生 云栖大会

Pipy:保护 Kubernetes 上的应用程序免受 SQL 注入和 XSS 攻击

Flomesh

程序员 微服务 服务网格 Pipy

Vue模板是怎样编译的

yyds2026

Vue

SpringBoot 自动装配原理

Jeremy Lai

springboot 自动装配

BI分析助力企业数字营销与运营,瓴羊Quick BI让企业决策更精准

巷子

解密负载均衡技术和负载均衡算法

京东科技开发者

负载均衡 算法 负载均衡算法 注册表 负载均衡技术

谈谈 Angular 应用 Feature Module 的延迟加载话题

汪子熙

typescript angular web开发 SAP 11月月更

李珣同款爱心特效代码,加DIY教程,快拿去送给你喜欢的那个ta吧。

bug菌

跳动的爱心 代码爱心 爱心代码

Webpack构建速度优化

Geek_02d948

webpack

2022VDC云与基础架构专场:筑牢云原生与基础架构发展基石 多维助力效能提升

极客天地

web3.0多链挖矿dapp系统开发技术详情

开发微hkkf5566

高并发系统谨防被一行日志击垮

小小怪下士

Java 程序员 高并发

低代码实现探索(五十二)基于模板方式基组件

零道云-混合式低代码平台

基线提升至96.45%:2022 司法杯犯罪事实实体识别+数据蒸馏+主动学习

汀丶人工智能

知识蒸馏 命名实体识别 11月月更

webpack实战,手写loader和plugin

Geek_02d948

webpack

推动中小企业数字化转型,终于“有据可依”了

雨果

低代码 数字化转型

2022VDC游戏生态专场:打造更健康长久的游戏生态

极客天地

阿里和蚂蚁集团共建并开源的国内第一款IDE框架——OpenSumi新版本发布

云布道师

#开源项目 2022云栖大会

Vue实战必会的几个技巧

yyds2026

Vue

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