单元测试使用Cakephp中的只读自定义数据源

时间:2012-12-23 22:26:46

标签: unit-testing cakephp cakephp-2.0

我目前正在为CakePHP应用程序编写一些单元测试。对于我的一些模特,我有一个自定义datasource。这是只读数据源。我想使用这个数据源运行一些单元测试,但似乎无法使其工作。

我在顶部创建了一个夹具如下:

public $useDbConfig = 'test_datafeeds';

但是我收到了一大堆错误。如果我从DataTest中删除所有我的灯具,它会工作,但它也会使用实际数据库中的所有实际数据 - 对于我的测试,我更喜欢使用我为数据库中的数据发送的虚拟数据。

我已经设法使用虚拟数据创建静态装置来模拟数据源,但我也更喜欢在测试中使用实际数据源的选项。

我得到的一些错误:

Notice: Undefined index: prefix in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 169

Warning: in_array() expects parameter 2 to be array, null given in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 171

Warning: in_array() expects parameter 2 to be array, null given in lib/Cake/TestSuite/Fixture/CakeFixtureManager.php on line 174

Fatal error: Call to undefined method DataFeedSource::execute() in lib/Cake/Test/Suite/Fixture/CakeTestFixture.php on line 194

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最好的方法,但它对我有用。我已经删除了     public $ useDbConfig ='test_datafeeds'; 从夹具,它的工作原理。似乎只是通过在我的配置文件中使用test_datafeed配置就可以了。

非常方便,因为我可以保持我的静态夹具,然后通过注释来打开和关闭test_datafeed。