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
4

1 回答 1

0

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

非常方便,因为我可以保留我的静态装置,然后通过注释掉它来打开和关闭 test_datafeed。

于 2012-12-24T00:12:18.520 回答