tsqlt - 为单元测试创​​建单独的数据库

Uma*_*air 9 t-sql tsqlt

我已经开始使用tsqlt了,我的问题是,是否有可能只有测试内容的单独数据库?(表/ sp /汇编等).

此测试数据库将与实际/目标数据库位于同一实例上.

如果我试图伪造一个表,我会收到以下错误:

FakeTable could not resolve the object name, 'target_db.dbo.Sometable'
Run Code Online (Sandbox Code Playgroud)

有没有人有这方面的经验?

谢谢.

Dav*_*een 9

正如您所发现的那样,目前这不可能,因为模拟程序不接受三个部件名称.这是SQL Test的用户反馈论坛(RedGate的产品,作为tSQLt的前端)所涵盖的内容:http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/ 2421628-减少-的足迹

tSQLt框架的作者之一Dennis Lloyd在该线程结束时写道,支持单独的'tSQLt'数据库是他们将继续考虑的事情.

还有一个模拟远程对象的相关问题,请访问http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/2423449-being-able-to-mock-fake-remote-objects

我希望有帮助,

戴夫


Yam*_*nue 9

您现在可以执行此操作,只要tSQLt框架位于其他数据库中:

EXEC tSQLt.FakeTable '[dbo].[Position]';
EXEC OtherDB.tSQLt.FakeTable '[dbo].[PositionArchive]';
Run Code Online (Sandbox Code Playgroud)

资源

这意味着您至少可以将测试放在所需的位置,但必须在正在测试的实际数据库中安装该框架.哪个不完美,但它更好.