我们正在考虑使用tSQLt进行SQL Server单元测试,但在此之前我们需要了解我们是否会浪费时间来尝试使用我们的设置。我问这个的原因是因为我们有两个数据库,其中一个很漂亮"正常" (这是我们的生产数据库),另一个是" API"通过存储过程提供对此数据库的受限访问的数据库" flip"您访问API数据库的用户帐户与生产数据库的模拟帐户之间的关系。生产数据库中的表不是直接访问,而是通过同义词访问。交易条款来自"入口点"存储过程在API数据库中。
我们希望能够测试两件主要内容;
(1)当我们忘记"在构建之间正确设置安全性访问。
(2)API存储过程/函数。我认为我们可以相对独立地测试一些功能,但我无法看到存储过程如何轻松工作。
答案 0 :(得分:1)
tSQLt是否支持安全权限测试?
间接。您可以使用ExpectException和ExpectNoException功能来测试给定帐户是否有权访问特定对象。
同义词
AFAIK你仍然无法伪造指向远程对象的同义词。你可能有更多的运气假装。
为什么tSQLt需要CLR权限?
如果您的意思是TRUSTWORTY
,则不再需要(http://tsqlt.org/748/tsqlt-v1-0-5873-27393-release-notes/)。如果你的意思是“为什么它根本就需要CLR”,这是因为有些操作本身很难或不可能用T-SQL做;看看早期的tsqlunit是否有勇气尝试。
是否必须在要对其进行测试的数据库上安装tSQLt“代码”
是
我要补充的是,如果您正在测试两个数据库之间的交互,那么分裂区别的部门可能会说这不是真正的单元测试。编写一个普通的旧NUnit / MSTest / whateverUnit测试可能更容易。过去我和Nunit和Dapper(stackoverflow成名)在组合轻量级数据库测试时运气不错。