**n style='letter-spacing:1px'>本节书摘来自异步社区《测试驱动数据库开发》一书中的第2章2.6节小结,作者【美】Max Guernsey, III,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.6 小结
测试驱动数据库开发
测试执行时检查特定对象的行为。存在可靠的实例化过程很有用处,因为它确保了一个特定类的所有对象都是相同的。这种关联意味着如果测试了一个类的一个对象,就测试了这个类的所有对象,因此,看起来好像测试了这个类本身。
这就是数据库开发真正不同于传统的面向对象开发的第一点。对于存储在内存中的对象,其类的构造方法可以用销毁先前为该对象分配、在内存中的任何内容的方式,并遵循一个单一的、简单的途径来构建一个工作对象。
然而,当构建一个数据库时,照顾到那些已经保存在数据库内的数据往往是很有必要的。因此,生成数据库可以遵循两条途径:一条是升级数据库,另一条是构建一个新的数据库。这就是如今许多开发环境工作的方式,但这让我们难以获得真实的数据库的类,因此,我们也难以进行数据库的测试驱动开发。
解决的办法是迫使每一个特定的类的数据库遵循完全相同的构建途径,从而消除构建新数据库和更新现有数据库之间的区别,即定义从一个版本过渡到下一个版本所需的步骤,将空数据库当做过渡的第一步,并执行从一个版本过渡到另一个版本所必需的步骤。
按照上述方式构建数据库后,用相似的方式来表达数据库的设计:一系列增量的累积产生了数据库的最新版本。当用上述方式定义数据库后,开发人员就能轻易地确保每一次数据库版本过渡的脚本以正确的顺序被执行且仅被执行一次。
针对如何定义数据库的设计,做出上述那一点变化,并编写少量的自动化脚本;或者首先使用本书的配套代码,就可以奠定一个基础和可靠的数据库的类,据此,开发人员就可以建立测试驱动数据库开发。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。