TSqlUnit值得使用吗?

时间:2011-03-18 14:14:27

标签: c# unit-testing entity-framework

如果我要为我的存储过程编写一些单元测试,使用TSqlUnit与C#/ Entity Framework4 / TransactionScope相比,这样做是否有任何好处?

在我看来,你可以创建一个EF4上下文,导入你的SPROCS和表,并在C#中做你需要的任何设置,叫你SPROC,用一些Asserts确认结果,然后回滚所有内容当您的TransactionScope在未提交的情况下到达using的末尾时。读回来,看起来很多,但我认为生成的代码比我在TSqlUnit中为了做同样的事情而必须编写的相应存储过程更加纤细和可读。

TSqlUnit是否适用于比C#/ Visual Studio更适合T-SQL的数据库开发人员?

2 个答案:

答案 0 :(得分:3)

如果您将EF4与交易一起使用并自行完成所有开发,那么您可能没有任何实际好处。

当您从多个应用程序使用T-SQL或者您正在为一个大型软件商店工作时,TSqlUnit开始增加价值,其中所有数据库开发都由一个单独的组拥有(这意味着他们将使用TSqlUnit来测试他们的代码,而不是依靠你为他们做的事情)。

答案 1 :(得分:1)

通常,当您使用EF或说NHibernate或任何其他ERM时,您不需要直接测试SQL SP,除非您手动创建了包含在EF或任何ERM中的SP。

所以,当您需要测试手工制作的SQL语句时,是值得使用的。否则,只需坚持使用适用于.NET的最喜欢的单元测试框架。

回答你的上一个问题:TSQLUnit适用于DB程序员(如果这是正确的单词)。如果您有大量手动调优的SQL编程(触发器,函数,存储过程),您应该考虑它。