BT

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

作者 赵劼 发布于 2009年9月22日 |

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

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

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

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

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

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

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

提供反馈
错误报告
商务合作
内容合作
InfoQ.com及所有内容,版权所有 © 2006-2013 C4Media Inc. InfoQ.com 服务器由 Contegix提供, 我们最信赖的ISP合作伙伴。
隐私政策
BT