1

我想测试我的数据库作为一组集成测试的一部分。我已经测试了所有我的代码单元,针对mock等进行了测试,但是我需要确保所有存储过程和代码在持续运行时都能正常运行。我昨天做了一些Google搜索,在这里发现了一篇不错的文章http://msdn.microsoft.com/en-us/magazine/cc163772.aspx,但看起来有点老了。我想知道是否有任何“更好”的方式来清理数据库,恢复到预期的状态或回滚准备好每个测试?我编码在C#4,mvc3使用SQL 2008.单元测试数据库

回答

2

我们使用DbUnit来设置和/或拆除测试之间的数据库,以及在测试期间断言数据库状态。

+0

是.net还是你使用Ndbunit? – lloydphillips

+1

我们正在使用它与java堆栈,但它看起来像Ndbunit为.net提供相同的功能。 –

2

这很愚蠢 - 简单,所以它可能不是你所需要的,但我所做的是保持数据库备份在给定的理智状态 - 通常是当前的生产数据库是什么。然后,对于每个构建,我们还原该数据库(使用Jenkins,NANT和SQLCMD),应用当前的构建更新脚本并运行我们的测试套件。这样做的好处是可以为您提供一个“已知数量”的数据库,并验证升级脚本是否正常工作。