BruceWang 发表于 2012-10-25 01:10:34

VS11中新的unit test框架——Fakes Framework

单元测试中最关键的矛盾在于如何能够将功能测试与环境隔离,这样才能将功能测试更加独立,不与具体环境关联,例如文件处理的逻辑方法和具体采用什么api读取哪里存放文件相隔离,数据库环境,网络通讯环境这些都可以被隔离。那么如何实现隔离呢,就是一个办法,注入拦截,将调用重定向到一个测试code的代理方法里面,这样所有控制权都尽在掌握了。
VS2010的时候,微软就已经开始着手实现一个能够和vs的unit test framework集成工作的隔离框架了——Moles就是这个框架,而且到目前为止个人觉得除了运行效率欠佳,使用起来还是很方便的。但是他是以一个vs扩展的方式存在的,默认并没有包含在VS里面,其实按照目前软件项目的复杂程度来看,希望写unit test但是不应用隔离技术的话,基本上写不出真正意义上的unit test。所以在VS11 beta里面,微软这次将隔离技术集成到了默认的unit test framework中,同时做了一些改进,具体还没有使用过,从介绍文章刊,应该是将moles项目的整合进了VS同时进行了一些改进,很期待。
几个明显的改变:mock type在fakes里面改名为Shim,但是作用都是simulate 非interface,非abstract class的内容。还有将加在特性上面的这个特性改为了在方法里面构建shim上下文的方法:
public void Y2kCheckerTest() {using(ShimsContext.Create()) {    ...} // clear all shims}
页: [1]
查看完整版本: VS11中新的unit test框架——Fakes Framework