今天我想到了为MySQL中的存储过程编写单元测试框架。完整的想法写在我博客上的最新帖子中。简而言之,它是这样的: 我想自动化我的程序测试,我想使用标准化的方法来测试我的程序。单元测试被广泛记录,并且有很多XUnit框架,为什么不为MySQL(或任何其他数据库)编写一个。 它当然是开源的。 你怎么看?这是愚蠢的,愚蠢的,不必要的还是什么? 或者另一个想法是在SQL中编写通用数据库框架。嗯,我真的想与某人讨论,收集想法和想法。
答案 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)
尝试TST:http://tst.codeplex.com
答案 6 :(得分:-4)
数据库中应该没有足够的逻辑来使测试变得有价值。