写点什么

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

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

关注

评论

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

让容器跑得更快:CPU Burst 技术实践

阿里巴巴云原生

阿里云 容器 云原生 cpu CPU调度

浅谈数据资产

圣迪

数据 数据资产

分布式系统的架构演进过程(二)

卢卡多多

28天写作 12月日更

尤雨溪推荐神器 ni ,能替代 npm/yarn/pnpm ?简单好用!源码揭秘!

若川

JavaScript vue.js 前端 签约计划第二季

Kafka 在消息队列领域为何如此流行?

老周聊架构

kafka 内容合集 签约计划第二季

Vue 团队公开快如闪电的全新脚手架工具 create-vue,未来将替代 Vue-CLI,才300余行代码,学它!

若川

JavaScript vue.js 前端 签约计划第二季

手把手带你漫游语音识别世界|入门到实战

攻城先森

音视频 语音识别 内容合集 签约计划第二季

go语言技术探究--合集

en

内容合集 签约计划第二季

javascript中获取 DOM 元素的几种方式

你好bk

JavaScript 前端 大前端 DOM BOM

初学者也能看懂的 Vue3 源码中那些实用的基础工具函数

若川

JavaScript vue.js 签约计划第二季

阿里Java编码手册实战详解-命名规范篇

JavaEdge

12月日更

Structuring: 魔法诞生之法

mtfelix

28天写作

[Pulsar] DLQ原理

Zike Yang

Apache Pulsar 12月日更

前端工程建设那些事

梁龙先森

内容合集 签约计划第二季

Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?

若川

JavaScript vue.js 前端 签约计划第二季

Prometheus Exporter (二十六)Statsd Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 StatsD

日常的情绪控制

搬砖的周狮傅

情绪控制

面试官:react中的setState是同步的还是异步的

全栈潇晨

React

简历应该这样写

xcbeyond

面试技巧 28天写作 12月日更

大学生要远离宿舍

Tiger

28天写作

何为异步流

喵叔

28天写作 12月日更

【docker 总结】第二篇 - Image 镜像

Brave

Docker 12月日更

Apache APISIX 助力便利充电创领者小电,实现云原生方案

API7.ai 技术团队

运维 云原生 物联网 网关 Apache APISIX

信息

Nydia

语音识别之降噪技术

攻城先森

音视频 语音识别 智能降噪 签约计划第二季

尤雨溪几年前开发的“玩具 vite”,才100多行代码,却十分有助于理解 vite 原理

若川

JavaScript vue.js 前端 签约计划第二季

手把手教你提交Jar包到Maven公共仓库 | 萌新写开源02

Zhendong

Java maven

Game On Serverless:SAE 助力广州小迈提升微服务研发效能

阿里巴巴云原生

阿里云 Serverless 云原生 SAE 合作

面试官:useLayoutEffect和useEffect的区别

全栈潇晨

React

前端开发:正确安装nvm的方法(非常详细)

三掌柜

28天写作 28 12月日更 12月

效能研发:做一款GraphQL代码生成器

梁龙先森

签约计划第二季

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