2010-05-18 146 views
3

我所在的团队目前正在使用TSQL编写代码来生成TSQL代码,该代码将作为脚本保存并随后运行。我们在测试代码生成器部分和测试他们生成的实际代码之间分离我们的单元测试有点困难。单元测试SQL代码生成器

我已阅读another similar question,但我希望得到一些具体的例子,说明我们可能有什么样的单元测试用例。

举一个例子,假设我有一些代码为视图提供了简单的DROP语句,给定了视图模式和名称。我是否只是测试生成的代码是否使用字符串比较来匹配某些预期的结果,然后在稍后的集成或系统测试中确保该放置实际上放弃了存在的视图,如果该视图不存在则不执行任何操作,如果视图是我们标记为不允许放置的视图,则会出错?

感谢您的任何建议!

+2

你自己的答案很不错:单元测试代码生成和使用集成测试来运行生成的SQL。 – topchef 2010-05-18 19:27:03

回答

1

测试您想要首先生成的代码是合理的。一旦你知道这个代码有效,你可以按照你所提到的那样去掉字符串。

+0

这就是我们所做的,小心地将两组测试包括在同一个测试组中,以便如果我们更改生成的代码来解决问题,它会自动导致生成器测试开始失败,直到它被更正为生成新的(正确的)代码。在这个测试和集成测试之间,我认为我们将会很好地被覆盖。 – 2010-05-19 13:16:32