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

时间:2012-11-21 15:01:46

标签: tsql tsqlt

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

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

如果我试图伪造一张桌子,我会收到以下错误:

FakeTable could not resolve the object name, 'target_db.dbo.Sometable'

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

感谢。

2 个答案:

答案 0 :(得分:9)

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

tSQLt框架的作者之一Dennis Lloyd在该线程的末尾写道,他们将继续考虑支持单独的'tSQLt'数据库。

还有一个在http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/2423449-being-able-to-mock-fake-remote-objects

模拟远程对象的相关问题

我希望有所帮助,

戴夫

答案 1 :(得分:9)

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

EXEC tSQLt.FakeTable '[dbo].[Position]';
EXEC OtherDB.tSQLt.FakeTable '[dbo].[PositionArchive]';

Source

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