写点什么

微软发布新版 Pex 框架,对测试提供了更好的支持

  • 2009-09-22
  • 本文字数:554 字

    阅读完需:约 2 分钟

不久前微软发布了新版本的 Pex 框架,其中的 Moles 组件可用于模拟框架中包括静态成员在内的几乎所有成员,大幅提高了对测试的支持程度。

Pex 是微软研究院构建的自动白盒测试框架,它的目标是让程序员减少手动编写大量单元测试的情况。Pex 允许开发人员编写单独的参数化测试方法,并根据测试方法的逻辑分支自动生成测试数据及 Assert 语句。虽然开发人员还是需要手动编写单元测试,但是 Pex 可以确保对代码进行了充分的测试。

Pex 附带一个迂回框架(Detour Framework) Stubs 。与其他如 Rhino Mocks Moq 框架不同,Stubs 并非使用 Emit 的方式动态创建类型,而是生成类型安全,可重构,可调试的源代码。Stubs 框架会为每个方法生成一个委托类型的成员,开发人员可以通过委托的指定方法的行为。

新版的 Pex 框架中发布了一个名为 Moles 的组件,它可以被看作是 Stubs 框架的扩展,可用于模拟所有的.NET 成员,包括静态方法,非虚方法以及密闭类型。例如,OperationContext.Current 静态属性在 IIS 环境外的情况下总是返回 null,但使用 Moles 之后,测试方法便可以摆脱 IIS 的依赖:

目前 Moles 的功能还不够完整,它不支持对构造函数及外部方法的模拟,以及 mscorlib 中一部分和 CLR 集成过于紧密的类型。

您可以从微软研究院网站上下载 Pex ,更多有关 Pex、Stubs 和 Moles 的信息可参考它们的主页。

2009-09-22 07:252509
用户头像

发布了 157 篇内容, 共 56.3 次阅读, 收获喜欢 6 次。

关注

评论

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

快讯2020第十三届南京国际智慧工地装备展览会

InfoQ_caf7dbb9aa8a

优选2020第十三届南京国际智慧停车展览会

InfoQ_caf7dbb9aa8a

Golang领域模型-依赖倒置

奔奔奔跑

架构 微服务 领域驱动设计 DDD Go 语言

mysql union子句排序问题

LSJ

开发 SQL语法

架构师训练营技术知识点

devfan

一代巨星的陨落!

小齐本齐

程序员 程序人生 职场

大作业 一

Jaye

听说你想进腾讯总部?这项黑科技你值得拥有!

腾讯云音视频

音视频

架构师训练营第一周学习总结

尹斌

极客大学架构师训练营

架构师培训大作业二——知识思维导图

chanson

展览工厂2020南京国际人工智能产品展览会

InfoQ_caf7dbb9aa8a

英特尔揭示智能边缘重大机遇,助推产业智能变革

E科讯

java安全编码指南之:堆污染Heap pollution

程序那些事

Java java安全编码 java安全编码指南 堆污染

架构师训练营1期 - 第一周 - 食堂就餐卡系统设计

三板斧

极客大学架构师训练营

大作业 二

Jaye

架构师训练营1期第1周:架构方法 - 作业

piercebn

极客大学架构师训练营

亚洲2020第十三届南京国际智慧新零售暨无人售货展览会

InfoQ_caf7dbb9aa8a

实战中学习浏览器工作原理 — HTML 解析与 CSS 计算

三钻

CSS 大前端 浏览器

甲方日常 17

句子

生活 随笔杂谈

一次年轻代GC长暂停问题的解决与思考

AI乔治

Java 架构 JVM 优化 GC调优

StringBuilder 比 String 快?空嘴白牙的,证据呢!

小傅哥

面试 小傅哥 string StringBuilder StringBuffer

zabbix 4.x一键部署脚本

edd

成为技术领导者-读书笔记

edd

架构师训练营大作业

路易斯李李李

【API进阶之路】做OCR文字识别,谁说必须要有AI工程师?

华为云开发者联盟

API 文字识别 OCR

Spring 5 中文解析数据存储篇-事务同步和声明式事物管理

青年IT男

Spring5

架构建模学习总结

林杭戴

极客大学架构师训练营

快讯2020第十三届南京国际大数据产业博览会

InfoQ_caf7dbb9aa8a

2020南京国际工业互联网及工业通讯展览会

InfoQ_caf7dbb9aa8a

What’s New in Dubbo-go-hessian2 v1.7.0

apache/dubbo-go

服务端 dubbo-go Go 语言

架构知识总结

飞雪

微软发布新版Pex框架,对测试提供了更好的支持_.NET_赵劼_InfoQ精选文章