微软发布新版Pex框架,对测试提供了更好的支持
不久前微软发布了新版本的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的信息可参考它们的主页。
深度内容
自动化测试基础设施(一)——为功能测试构建通用mock server系统
余昭辉 五月 18, 2013
敏捷自动化测试(3)——让断言不再成为自动化测试的负担
殷坤 五月 17, 2013
阅读者:不容小觑的Web安全
丁雪丰 五月 14, 2013
企业系统集成点测试策略
熊节 五月 13, 2013
新书:《jQuery、jQuery UI 和 jQuery Mobile》
Roopesh Shenoy 五月 13, 2013

您好,陌生人!
您需要 注册一个InfoQ账号 或者 登录 才能进行评论。在您完成注册后还需要进行一些设置。获得来自InfoQ的更多体验。
告诉我们您的想法