【发布时间】:2013-07-04 20:49:17
【问题描述】:
我知道这个问题已经被问过很多次了,但我仍然没有找到一个好的答案,我对这个问题的看法略有不同。
我正在寻找一种对数据访问层进行彻底单元测试的好方法,但如果可能的话以原子方式进行。我不想使用真正的数据库(或克隆),因为这将是一个集成测试,我希望我的测试尽可能保持轻量和简单。
DAL 是使用 NHibernate 实现的,而 DB 是 Microsoft SQL Server。不幸的是,一些 DAO 必须使用普通的旧 ADO.Net 来实现。更糟糕的是,一些 DAO 必须是存储过程的包装器。
基本上,我想测试的是 NHibernate 映射是否有意义,并且 DAO 基本上可以工作。我想根据我的 NHibernate 映射在内存中创建一个数据库,模拟所有必需的存储过程,然后围绕这个数据库运行我的单元测试。使用我正在测试的 DAO 从内存数据库中的“模拟”插入和查询。
我的问题如下:
- 这是个好方法吗?
- 是否有人对这种方法有经验并可以分享见解?
- 是否有一些框架或库可以帮助我创建内存数据库中的模拟?
- 如何构建这些测试以适用于基于 NHibernate 的 Dao 和基于 ADO.Net 的 Dao?
- 如何为存储过程创建模拟?
【问题讨论】:
标签: .net sql-server unit-testing nhibernate testing