SQL 可能会导致 tSQLt 出现问题的功能
SQL Features that might cause problems for tSQLt
我们正在考虑使用 tSQLt 进行 SQL 服务器单元测试,但在这样做之前,我们需要了解我们是否会浪费时间尝试使用我们的设置。我问这个的原因是因为我们有两个数据库,其中一个是漂亮的 "normal"(这是我们的生产数据库),另一个是 "API" 数据库,它通过存储提供对该数据库的限制访问在您访问 API 数据库的用户帐户和生产数据库的模拟帐户之间 "flip" 的过程。生产数据库中的表不是直接访问的,而是通过同义词访问的。交易规定来自 API 数据库中的 "entry point" 存储过程。
我们希望能够测试两个主要内容;
(1) 当我们 "forget" 在构建之间正确设置安全访问时,我们可以 运行 在使用共享对象时遇到问题的对象安全权限。
(2) API 存储过程/函数。我认为我们可以相对独立地测试一些功能,但我看不出存储过程如何轻松工作。
- SQL是否支持安全权限测试?
- 我看到跨数据库测试和同义词存在问题,但该信息非常具有历史意义。现在这些都解决了吗?
- 为什么 tSQLt 需要 CLR 权限?
- tSQLt "code" 是否必须安装在它要测试的数据库上,或者我们可以 运行 它针对同一实例上的数据库吗?
- 列表项
Does tSQLt support security permission testing ?
间接地。您可以使用 ExpectException 和 ExpectNoException 功能来测试给定帐户是否有权访问特定对象。
Synonyms
据我所知,您仍然无法伪造指向远程对象的同义词。不过,你可能会更幸运地伪造观点。
Why does tSQLt require CLR permissions ?
如果您的意思是 TRUSTWORTY
,则不再需要 (http://tsqlt.org/748/tsqlt-v1-0-5873-27393-release-notes/)。如果你的意思是 "Why does it require CLR at all",这是因为有些操作很难或不可能单独使用 T-SQL;看看早期的 tsqlunit 来进行一次勇敢的尝试。
Does the tSQLt "code" have to be installed on the database it's going to test against
是的。
我要补充的是,如果您正在测试两个数据库之间的交互,那么令人毛骨悚然的部门可能会说这不是 真正的 单位测试。编写一个普通的旧 NUnit/MSTest/whateverUnit 测试可能更容易。过去,我在 Nunit 和 Dapper(以 Whosebug 闻名)将轻量级数据库测试放在一起时运气不错。
我们正在考虑使用 tSQLt 进行 SQL 服务器单元测试,但在这样做之前,我们需要了解我们是否会浪费时间尝试使用我们的设置。我问这个的原因是因为我们有两个数据库,其中一个是漂亮的 "normal"(这是我们的生产数据库),另一个是 "API" 数据库,它通过存储提供对该数据库的限制访问在您访问 API 数据库的用户帐户和生产数据库的模拟帐户之间 "flip" 的过程。生产数据库中的表不是直接访问的,而是通过同义词访问的。交易规定来自 API 数据库中的 "entry point" 存储过程。
我们希望能够测试两个主要内容;
(1) 当我们 "forget" 在构建之间正确设置安全访问时,我们可以 运行 在使用共享对象时遇到问题的对象安全权限。
(2) API 存储过程/函数。我认为我们可以相对独立地测试一些功能,但我看不出存储过程如何轻松工作。
- SQL是否支持安全权限测试?
- 我看到跨数据库测试和同义词存在问题,但该信息非常具有历史意义。现在这些都解决了吗?
- 为什么 tSQLt 需要 CLR 权限?
- tSQLt "code" 是否必须安装在它要测试的数据库上,或者我们可以 运行 它针对同一实例上的数据库吗?
- 列表项
Does tSQLt support security permission testing ?
间接地。您可以使用 ExpectException 和 ExpectNoException 功能来测试给定帐户是否有权访问特定对象。
Synonyms
据我所知,您仍然无法伪造指向远程对象的同义词。不过,你可能会更幸运地伪造观点。
Why does tSQLt require CLR permissions ?
如果您的意思是 TRUSTWORTY
,则不再需要 (http://tsqlt.org/748/tsqlt-v1-0-5873-27393-release-notes/)。如果你的意思是 "Why does it require CLR at all",这是因为有些操作很难或不可能单独使用 T-SQL;看看早期的 tsqlunit 来进行一次勇敢的尝试。
Does the tSQLt "code" have to be installed on the database it's going to test against
是的。
我要补充的是,如果您正在测试两个数据库之间的交互,那么令人毛骨悚然的部门可能会说这不是 真正的 单位测试。编写一个普通的旧 NUnit/MSTest/whateverUnit 测试可能更容易。过去,我在 Nunit 和 Dapper(以 Whosebug 闻名)将轻量级数据库测试放在一起时运气不错。