Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TSqlUnit值得使用吗?_C#_Unit Testing_Entity Framework - Fatal编程技术网

C# TSqlUnit值得使用吗?

C# TSqlUnit值得使用吗?,c#,unit-testing,entity-framework,C#,Unit Testing,Entity Framework,如果我要为我的存储过程编写一些单元测试,那么使用TSqlUnit vis-a-vis C#/Entity Framework4/TransactionScope这样做有什么好处吗 在我看来,您可以创建EF4上下文,导入存储过程和表,在C#中执行任何需要的设置,调用存储过程,使用一些断言确认结果,并在事务处理范围到达末尾时使用回滚所有内容,而不必提交。回过头来看,这似乎很多,但我认为生成的代码比我在TSqlUnit中编写的相应存储过程要细得多,可读性也更高 TSqlUnit是否更适合使用T-SQL

如果我要为我的存储过程编写一些单元测试,那么使用TSqlUnit vis-a-vis C#/Entity Framework4/TransactionScope这样做有什么好处吗

在我看来,您可以创建EF4上下文,导入存储过程和表,在C#中执行任何需要的设置,调用存储过程,使用一些
断言确认结果,并在事务处理范围到达
末尾时使用
回滚所有内容,而不必提交。回过头来看,这似乎很多,但我认为生成的代码比我在TSqlUnit中编写的相应存储过程要细得多,可读性也更高


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

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

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


回答最后一个问题:TSQLUnit是为DB程序员设计的(如果这个词正确的话)。如果你有大量的手动调整SQL编程(触发器,函数,存储过程),你应该考虑它。

如果你使用EF4进行事务,并且自己做所有的开发,你可能没有真正的好处。


当您从多个应用程序中使用T-SQL时,或者在一家大型软件商店工作时,TSqlUnit开始增加价值,在那里,所有数据库开发都由一个单独的小组负责(这意味着他们将使用TSqlUnit来测试代码,而不是依赖您来为他们进行测试)

如何使用EF模拟数据库表?