代码重用tsqlt / sql测试

时间:2014-01-10 14:58:35

标签: tsql tsqlt

我刚开始在redgate的sql测试中使用tsqlt。我必须在遗留数据库中处理相当大的表(大量列)。将一些假数据插入到这些表中的最佳做法是什么('脚本作为'插入语句非常大) - 因此它们会使我单元测试的“排列部分”字面上不可读。我可以分解出这样的代码吗?还有一种方法不仅可以编写插入语句的脚本,还可以自动填写一些值吗?谢谢。

1 个答案:

答案 0 :(得分:4)

我同意你的评论,你不需要填写插入语句中的所有列。

tSQLt.FakeTable从列中删除所有非空约束,以及计算列和标识列(尽管最后两个可以使用特定参数恢复到FakeTable)。

因此,您只需要填充与您测试的代码相关的列,这些列通常只是表中列的较小子集。

我在this article中更详细地写了这篇文章,其中还包含了一些你可能想知道的其他“陷阱”。

另外,我建议如果你有许多测试需要同一个表伪造和插入数据,你考虑使用SetUp例程 - 这是测试类(模式)中的存储过程,这是调用SetUp,并在该模式中的每个测试之前由tSQLt调用。它们不会在RedGate的SQL测试窗口中显示(我已经建议它作为改进),但仍然可以工作。这可能会让人更难以看到 - 但是会对代码进行模块化,从而减少相同的重复代码。