我想知道其他人可能用什么方法测试数据库的域服务?我已经有了一系列模拟存储库,可以在域服务中使用它们来测试域服务本身。这些模拟存储库的部分构建是,他们创建样本聚合和关联实体,并根据模型中使用的相同业务规则进行验证。这也提供了一个很好且简单的方法来检测实体本身内的潜在影响点,如果它们的界面发生变化。针对真实数据库的单元测试域服务
我对SQL支持存储库的实时测试看到的主要问题是数据库一致性。例如,一旦运行测试,“创建”方面就已经运行。由于数据库不再是原始的,所以再次运行它们显然会导致失败。我正在考虑创建一个仅用于此类测试的镜像数据库。这将是最小的,包含结构,可编程性,约束等。我还会为某些已建立的测试提供最小的一组数据。我的思路是,我可以调用一个存储过程,在测试运行开始之前,使用基础数据将数据库重置为“pristine”状态。
尽管在功能初步验证后,这对开发人员机器来说并不重要,但我更多地关注在夜间构建中运行这些测试的重要性;以便在测试失败的情况下,构建可以被阻止以免污染目标部署环境(具体而言,在这种情况下,测试团队将使用环境)。
我并不认为,平台的问题,但如果任何人有实施的具体问题,我的环境如下所示:
的Windows 7(开发)/在Windows Server 2008 R2(服务器) 的Visual Studio 2008团队版(C#) Microsoft SQL Server 2008标准版(开发/服务器)
我正在使用Team Build来运行我的构建,但这很可能不是问题范围中的一个因素。
这是一个好主意。我的存储库已经有一个“工作单元”模式实现,我正在使用它自动创建一个TransactionScope()。我没有想过要添加一个Rollback()方法来处理我的Commit(),但这可能只是这种情况下最简单的方法。 – 2009-09-12 22:41:36
这工作得很好。再次感谢!比我考虑的其他方法要容易得多! – 2009-09-13 01:57:41