tSQLt 如何判断表是否是伪造的

Mal*_*rig 1 sql sql-server unit-testing ssms tsqlt

我刚刚开始为我的数据库创建一些单元测试。

如果我伪造了一张桌子,

EXEC tSQLt.FakeTable
    @TableName = 'dbo.[My Table]',
    @Identity = 0,
    @ComputedColumns = 0,
    @Defaults = 0
Run Code Online (Sandbox Code Playgroud)

可以查一下是否是假的吗?

请注意,可以在此处找到有关 FakeTable SP 的文档。

动机

我希望能够做到这一点,因为我想象创建几个存储过程来填充这些伪造的表,以便我可以执行测试。但是,我不想处理存储过程中的伪造表(因此我可以多次调用它们,每次输入不同的信息)。

我不想在添加数据之前忘记伪造表格(这几乎肯定会导致我的测试失败)。

Ed *_*per 5

tSQLt 向假表添加扩展属性以跟踪它假冒的表。使用以下函数可以轻松测试这一点tSQLt.Private_GetOriginalTableName

SELECT tSQLt.Private_GetOriginalTableName('dbo','[My Table]')
Run Code Online (Sandbox Code Playgroud)

NULL如果表不是伪造的,这将返回。

如果想做更复杂的事情,可以sys.extended_properties直接查询。有关 的定义,请参阅脚本的内容tSQLt.class.sql (在tSQLt 发行版tSQLt.Private_GetOriginalTableName中) 。