在Java环境中习惯TDD我想知道在构建SQL查询,创建视图等时是否也使用了TDD。
如果它也被使用,人们如何做到这一点?您需要创建许多小型数据库(基本上每个单元测试)?
我不知道我的问题是否有道理但仍然存在:TDD被认为是 改变了他们开发软件的方式,而且 >在“SQL”级别继续开发。那么TDD和DB / SQL如何混合?
答案 0 :(得分:2)
在Rails世界中,您有一个专用的测试数据库,您可以在每次运行测试套件时通过migrations和fixtures构建,以便在运行测试之前预先填充数据库。
这使TDD完全可以与数据库对比。
我认为数据库开发人员不使用TDD的主要原因是文化比其他任何东西都要多。
答案 1 :(得分:0)
我认为它在数据库世界中并不常见。
要问的问题是:“我在这里测试的是什么?”
可以按照您的建议完成,也可以通过启动事务,填充具有保证初始已知状态的表,运行正在测试的代码然后回滚。但最终这些测试往往以数据为中心而且对数据库更改很脆弱:一次模式更改可能会破坏大量测试并创建大量工作。