我只是要设计一个更大的数据库体系结构。它将包含一组表,几个 View 和一些存储过程。由于它是较大型的数据库,并且处于开发的早期阶段(实际上,它仍仅处于设计的早期阶段),因此我觉得需要一个测试套件来验证重构期间的完整性。
就应用程序逻辑而言,我在服务器端(主要是PHPUnit)和客户端(Selenium和Android测试基础结构)方面都非常熟悉测试概念。
但是,如何测试我的数据库体系结构?
对于一般的数据库,尤其是MySQL,是否有某种类似的测试策略和工具? 在更改基础表之后,如何验证我的 View ,存储过程,触发器和“天知道的”内容仍然有效? 是否必须使用PHP层包装数据库才能启用数据库逻辑测试(存储过程,触发器等)? 要测试数据库,您需要做的一些事情是:
一个测试数据库,其中包含所有数据测试用例,初始数据等。这使您每次都可以从已知的起始位置进行测试。 一组事务(INSERT,DELETE,UPDATE),它们使数据库在要测试的状态之间移动。这些可以自己存储在测试数据库中。 您的一组测试-表示为对数据库的查询,它们对操作结果进行实际检查。这些结果将由您的测试套件进行测试。 数据库可以引发异常,但是如果您正在获取异常,则数据库和数据中可能会有更严重的问题。您可以以类似的方式测试数据库的操作,但是除了“极端情况”外,这没有必要,因为现代数据库引擎在执行数据服务任务时非常强大。
您不需要用PHP层包装数据库-如果遵循上述结构,则应该有可能将完整的测试套件与实际的测试套件结合在实际数据库的DML和DDL中。