嗨,我也是CakePHP测试中TDD进程的新手。
我的问题是,我们是否需要两个数据库,一个用于默认,另一个用于测试?
假设我有my_database
作为$default
。我是否也需要在$test
上使用my_database
?或者我需要创建另一个类似my_database_test
的?哪一种是常见的?
我已经读到:http://book.cakephp.org/2.0/en/development/testing.html但仍然不知道是否需要使用不同的数据库。
谢谢。
不幸的是,CakePHP中的单元测试对初学者来说并不直观,因为测试数据库的目的并不完全清楚。
请记住:测试数据库是一个空的沙盒,其表是作为每个测试生命周期的一部分创建、填充和删除的
测试数据库不应包含永久数据,因为它将被销毁。因此,决不能使用"默认"数据库作为测试数据库必须创建一个单独的数据库进行测试。
要创建包含测试数据的表,需要定义fixture。fixture可以在每次测试运行时自动从"默认"数据库中导入表信息和数据。然而,在大多数情况下,手动对固定装置进行硬编码是一种更好的做法。