集成测试SQL文件难以维护

时间:2014-10-13 16:00:35

标签: sql testing tdd automated-tests integration-testing

我们的问题:我们有一套很好的集成测试(端到端),每个测试都有一个SQL文件在准备数据库之前执行。随着时间的推移,维护这些SQL文件会更加困难。

示例:如果我们在表中添加一个新的必需列,我们必须更改我们拥有此表的所有SQL文件(我们用于测试)以及我们拥有的种子数据它

这非常耗时,随着SQL文件数量的增长,情况会越来越糟。我们怎样才能改善这种状况?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是重新考虑参数化查询。如果您的SQL文件多次执行结构相似的查询,您可以尝试一次编译查询并使用不同的参数执行它。为了获得更好的可用性,您可以将(已经存在的)现有查询存储在variables / params / procedures中。这里有一个很大的优势,即一个查询更改将通过其余部分传播。您可以在此处详细了解Common Table Expressions

如果要重用查询的 SQL text ,另一种可能有用的方法是定义视图(可能)是最好的方法。

如果要重用查询结果,则应考虑全局临时表。这些临时表存储会话或事务持续时间的数据(无论您选择哪个)。如果您需要多次重复使用计算数据,这些非常有用,特别是如果您的查询确实是“丑陋的”#34;并且"可怕的" (意思是长跑)。有关详细信息,请参阅Temporary tables

如果您需要将数据保留的时间长于会话,则可以考虑实体化视图。