在CakePHP单元测试中,我可以将相同的数据库用于$default和$test配置吗


In CakePHP unit testing, can I use the same database for the $default and $test configurations?

嗨,我也是CakePHP测试中TDD进程的新手。

我的问题是,我们是否需要两个数据库,一个用于默认,另一个用于测试?

假设我有my_database作为$default。我是否也需要在$test上使用my_database?或者我需要创建另一个类似my_database_test的?哪一种是常见的?

我已经读到:http://book.cakephp.org/2.0/en/development/testing.html但仍然不知道是否需要使用不同的数据库。

谢谢。

不幸的是,CakePHP中的单元测试对初学者来说并不直观,因为测试数据库的目的并不完全清楚。

请记住:测试数据库是一个空的沙盒,其表是作为每个测试生命周期的一部分创建、填充和删除的

测试数据库不应包含永久数据,因为它将被销毁。因此,决不能使用"默认"数据库作为测试数据库必须创建一个单独的数据库进行测试

要创建包含测试数据的表,需要定义fixture。fixture可以在每次测试运行时自动从"默认"数据库中导入表信息和数据。然而,在大多数情况下,手动对固定装置进行硬编码是一种更好的做法。