[发明专利]一种在MVC 中使用测试驱动开发的存储库模式无效
申请号: | 201210164715.1 | 申请日: | 2012-05-25 |
公开(公告)号: | CN102693182A | 公开(公告)日: | 2012-09-26 |
发明(设计)人: | 董阳;易川;张吉英;李德逸 | 申请(专利权)人: | 苏州博远容天信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 曹毅 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 mvc 使用 测试 驱动 开发 存储 模式 | ||
技术领域
本发明涉及一种使用测试驱动开发(TDD)的方法,具体涉及一种在MVC 中使用测试驱动开发的存储库模式。
背景技术
目前在MVC的单元测试中,对控制器方法进行单元测试时,涉及到调用数据访问的添加、修改、删除、查询时,往往需要真实的数据库服务器支持,才能正常运行单元测试代码。通过对以往单元测试的分析,发现存在着诸多不便实现的问题。
其具体问题包括:
1、首先执行单元测试时,需要真实的数据库服务器支持;
2、编辑和删除数据的单元测试将更改数据库的状态,这就需要每一轮的单元测试都具有干净的数据库环境;
3、在对控制器方法进行单元测试时,如果被测试方法中需要调用另一个类中的某个方法,并且需要获得该方法的返回值,才能正确执行。如果被调用的方法由于某种原因没有开发完成,在这种情况下,要想对此方法进行测试,只能等待被调用类开发完成。
发明内容
发明提供了一种在MVC 中使用测试驱动开发的存储库模式,目的在于解决单元测试对真实数据库和其他外部组件的依赖,提供一种新型的临时的存储库模式,更大的优化单元测试的灵活性、可测试性。
样处理厂的告知系统为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种在MVC 中使用测试驱动开发的存储库模式,其特征在于,包括以下步骤:
步骤1)添加存储库,定义一个访问数据库的接口;
步骤2)创建测试驱动,实现 mock 存储库;
步骤3)添加测试类支持,在目标测试类中定义两个构造函数;
第一个构造函数是无参数构造函数,第二个构造函数采用了 IContactRepository 类型的参数,所述第二个构造函数将由单元测试传入所述mock 存储库;所述第一个构造函数将创建 EF_ContactRepository 类的实例,当调用控制器中的操作方法时,MVC 管道将调用所述第一个构造函数;
步骤4)添加测试,在所述测试类中编写测试方法,调用所述第二个构造函数。
本发明的原理是:
本发明使用具有 MVC 和 TDD 的存储库模式,需要测试人员为数据访问类创建接口;对控制器方法进行单元测试时,可根据接口实例化mock存储库,去模拟实际运行过程中的对数据的添加、修改、删除、查询。
采用 MVC 的 TDD 的原则之一是,每个测试应驱动操作方法中的一个特定要求,测试不应验证数据库或其他组件(尽量把这些组件放在数据访问的单元测试和集成测试中进行测试)。
本发明的有益效果是:
1、执行单元测试时,不需要真实的数据库服务器;
2、编辑和删除数据的单元测试,不需要在执行每一轮单元测试时,准备干净的数据库环境;
3、为单元测试提供了替换点,可以轻松地测试业务逻辑而无需数据库和其他外部依赖项。
附图说明
图1为本发明的流程图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
参见图1所示,一种在MVC 中使用测试驱动开发的存储库模式,包括以下步骤:
步骤1)添加存储库:
使用具有 MVC 和测试驱动开发(TDD)的存储库模式,需要测试人员为数据访问类创建接口。对控制器方法进行单元测试时,可根据接口实例化mock存储库,去模拟实际运行过程中的对数据的添加、修改、删除、查询。
定义一个访问数据库的接口:
1.public interface IContactRepository
2.{
3. void CreateNewContact(Contact contactToCreate);
4. void DeleteContact(int id);
5. Contact GetContactByID(int id);
6. IEnumerable<Contact> GetAllContacts();
7. int SaveChanges();
8.}
步骤2)创建测试驱动,实现 mock 存储库:
1.class InMemoryContactRepository : IContactRepository
2.{
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州博远容天信息科技有限公司,未经苏州博远容天信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210164715.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:修剪刀片
- 下一篇:电子组件分类设备及其分类容器装载及取出的侦测方法