如何通过在实现中使用LINQ2SQL的域层/模型(存储库)对数据库进行集成测试,并让数据库保持原样?换句话说,在对数据库进行单元测试的理想情况下,集成测试将使数据库保持原样。
有没有工具可以自动处理这个问题?通过存储库在数据库上执行集成测试的最佳实践是什么?
发布于 2009-08-11 22:33:46
Spring框架provides support for integration testing when using NUnit。NUnit类位于程序集Spring.Testing.NUnit.dll中。里面有一些classes that perform transaction management。这些类为每个测试创建和回滚数据库事务。您只需编写可以假定存在事务的代码。
这是否真的适用于Linq to SQL则是另一回事。Spring说这适用于ORMs。SQL Server 2008允许嵌套事务,因此理论上您可以启动一个事务,通过Linq to SQL类执行测试,然后回滚事务。但我还没有
试过了。
Ryan Garaguay对此有an interesting article,它使用TransactionScope和NUnit回滚数据库更改(尽管他在测试代码中使用SQLCommand和SQLConnection对象,而不是Linq)
https://stackoverflow.com/questions/1263199
复制相似问题