是否有人有使用SQLite编写集成测试的经验?

YMC*_*YMC 2 unit-testing entity-framework entity-framework-4 entity-framework-4.1

我们在项目中使用MVC,Entity Framework 4.1 Code First,SQL Server。

请分享您的经验:如何对数据服务层进行单元测试?所谓数据服务层,是指应该由内部具有某种DbContext派生类声明的MVC控制器运行的服务,以便它们依赖于此EF DbContext,并封装一些业务\数据逻辑来获取和存储数据。

阅读了几篇文章和帖子后,我倾向于使用单独的数据库来构建单元/集成测试,并且我更喜欢使用内存(例如SQLite)而不是SQL Compact。但是,我什至不确定是否有可能,如果您有这样的经验,请分享几行代码以说明如何实现。

Lad*_*nka 5

单元测试意味着测试单元=没有数据库,没有外部依赖性,仅测试单个可测试单元。一旦您想使用数据库,就不再需要进行单元测试了-您正在进行集成测试。

我写了关于依赖EF的代码的单元测试/集成测试的多个答案。最后一个在这里。因此,如果您的服务层在上下文中创建linq查询,那么您将无法对其进行可靠的单元测试。您需要集成测试。

我将使用您期望在实际代码中使用的数据库。为什么?由于数据库提供之间的映射和行为以及LINQ的实现可能有所不同。同样,在使用SQL Server的情况下,您可以使用特殊的EF功能,而这些功能不必在SQLite中可用。另一个原因是我上次检查它时,SQLite的提供程序不支持数据库删除,重新创建等,这是人们通常希望用于集成测试的东西。解决方案可以是Devart提供者


归档时间:

查看次数:

1120 次

最近记录:

14 年,7 月 前