我目前正在为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
答案 0 :(得分:0)
我不确定这是否是最好的方法,但它对我有用。我已经删除了 public $ useDbConfig ='test_datafeeds'; 从夹具,它的工作原理。似乎只是通过在我的配置文件中使用test_datafeed配置就可以了。
非常方便,因为我可以保持我的静态夹具,然后通过注释来打开和关闭test_datafeed。