time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > .net > Visual Studio > 【Visual Studio 2012 Fakes框架测试驱动开发TDD教程】1、接口模拟

【Visual Studio 2012 Fakes框架测试驱动开发TDD教程】1、接口模拟

时间:2012-12-07 22:51 点击:8457次 字体:[ ]




一、前言

  最近团队要尝试TDD(测试驱动开发)的实践,很多人习惯了先代码后测试的流程,对于TDD总心存恐惧,认为没有代码的情况下写测试代码时被架空了,没法写下来,其实,根据个人实践经验,TDD并不可怕,还很可爱,只要你真正去实践了几十个测试用例之后,你会爱上这种形式方式的。微软对于TDD的开发方式是大力支持和推荐的,新发布的VS2012的团队模板就是根据。新的Visual Studio 2012给我们带来了Fakes框架,这是一个针对代码测试时对测试的外界依赖(如数据库,文件等)进行模拟的Mock框架,用上了之后,我立即从Moq的阵营中叛变了^_^。截止到写此文的时间,网上还没有一篇关于Fakes框架的文章(除了“VS11将拥有更好的单元测试工具和Fakes框架”这篇介绍性的之外),就让我们来慢慢摸索着用吧。废话少说,下面我们就来一步一步的使用Visual Studio 2012的Fakes框架来实战一把TDD。

二、需求说明

  我们要做的是一个普通的用户注册中“检查用户名是否存在”的功能,需求如下:

  1. 用户名不能重复
  2. 可设置是否启用邮件激活,如果不启用邮件激活,则直接在“正式用户信息表”中检查,反之则还要进入“未激活用户信息表”中进行查询

三、项目结构

【Visual Studio 2012 Fakes框架测试驱动开发TDD教程】1、接口模拟_www.fengfly.com

  先分解一下项目的结构,还是传统的三层结构,从底层到上层:

  1. Liuliu.Components.Tools:通用工具组件
  2. Liuliu.Components.Data:通用数据访问组件,目前只定义了一个数据访问接口的通用基接口IRepository
  3. Liuliu.Demo.Core.Models:数据实体类,分两个模块,账户模块(Account)与通用模块(Common)
  4. Liuliu.Demo.Core:业务核心层,里面包含Business与DataAccess两个子层,DataAccess实现实体类的数据访问,Business层实现模块的业务逻辑,因为测试的过程中数据访问层的数据库实现会用Fakes框架来模拟,所以数据访问层只提供了接口,不提供实现,Business只调用了DataAccess的接口。我们要做的工作就是用Fakes框架来模拟数据访问层,用TDD的方式来编写Business中的业务实现
  5. Liuliu.Demo.Core.Business.UnitTest:单元测试项目,存放着测试Business实现的测试用例。
  6. Liuliu.Demo.Consoles:用户操作控制台,功能实现后进行用户操作的UI项目

  其他的项目与测试无关,略过。

四、开发准备

(一) 应用代码准备

Entity:实体类的通用数据结构

  1. /// <summary>  
  2.      ///   数据实体类基类,定义数据库存储的数据结构的通用部分  
  3.      /// </summary>  
  4.      public abstract class Entity  
  5.      {  
  6.          /// <summary>  
  7.          ///   编号  
  8.          /// </summary>  
  9.          public int Id { getset; }  
  10.    
  11.          /// <summary>  
  12.          ///   是否逻辑删除(相当于回收站,非物理删除)  
  13.          /// </summary>  
  14.          public bool IsDelete { getset; }  
  15.    
  16.          /// <summary>  
  17.          ///   添加时间  
  18.          /// </summary>  
  19.          public DateTime AddDate { getset; }  
  20.      } 



本文地址 : http://www.fengfly.com/plus/view-210779-1.html
标签: Visual Studio 2012 TDD
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: