编写用于测试SQL存储过程的单元测试框架

时间:2008-10-29 22:00:22

标签: mysql unit-testing frameworks

今天我想到了为MySQL中的存储过程编写单元测试框架。完整的想法写在我博客上的最新帖子中。简而言之,它是这样的: 我想自动化我的程序测试,我想使用标准化的方法来测试我的程序。单元测试被广泛记录,并且有很多XUnit框架,为什么不为MySQL(或任何其他数据库)编写一个。 它当然是开源的。 你怎么看?这是愚蠢的,愚蠢的,不必要的还是什么? 或者另一个想法是在SQL中编写通用数据库框架。嗯,我真的想与某人讨论,收集想法和想法。

7 个答案:

答案 0 :(得分:3)

已经有一个Sql Server测试框架 - TSQLUnit。也许你可以从中获得一些有用的信息。

答案 1 :(得分:1)

是的,好主意。我在pgTAP取得了相当大的成功。我已在许多项目中使用它,包括test driven database development和编写现有过程的测试,以便能够有效地重构它们。

我经常被问到是否有类似MySQL的东西。也许你现在已经写过了什么?

答案 2 :(得分:1)

那里已经有单元测试了。除了dbUnit和sqlUnit之外,请尝试:

MyTAP:https://github.com/hepabolu/mytap
datacharmer.org:http://datacharmer.blogspot.com/2006/01/mysql-5-general-purpose-routine_27.html

答案 3 :(得分:0)

我倾向于对数据访问层进行单元测试,因为你必须使用适当的数据设置一个合适的数据库,所以它总是很麻烦。有数据生成器可以提供帮助(如RedGate的数据生成器),使设置过程更简单。

我在测试DAL背后的想法是,您实际上是使用添加的.Net DB代码测试存储过程本身,我认为我们不需要担心单元测试。这样,您就可以利用已有的所有工具和流程进行单元测试。对于能够(恕我直言)与现有工具同样良好地执行的事情,开发一个单独的框架似乎需要付出很多努力。

我有一个开放的心态。如果我有一些好处,请告诉我。

干杯, V

答案 4 :(得分:-1)

其中一个好处是,测试将在相同的环境中编写,由主应用程序之外的专业数据库开发人员编写和执行存储过程。 应用程序开发人员不需要成为关系数据库编程的主人,也不需要数据库开发人员掌握现代应用程序开发语言。 你现在已经测试了所有东西。为什么不将它们用于数据库编写的sql并在任何内部开发的应用程序之外执行。

如果您正在开发多层应用程序,则将每个部分分开并单独测试是有意义的。

答案 5 :(得分:-1)

答案 6 :(得分:-4)

数据库中应该没有足够的逻辑来使测试变得有价值。