当我尝试使用 PHPUnit 测试我的 Kohana(3.3.0) ORM 模型时,它会在下面抛出这个异常。
Website_MetadataTest::testCountMetadata
ErrorException: Invalid argument supplied for foreach()
/home/liva/Workspace/htdocs/Revoyance-Local/modules/orm/cla sses/Kohana/ORM.php:1014
/home/liva/Workspace/htdocs/Revoyance-Local/modules/orm/classes/Kohana/ORM.php:1041
/home/liva/Workspace/htdocs/Revoyance-Local/modules/orm/classes/Kohana/ORM.php:1001
/home/liva/Workspace/htdocs/Revoyance-Local/tests/classes/Website/MetadataTest.php:21
我检查了所有这些文件,似乎 ORM.php 无法从数据库加载表列列表。
你们有没有遇到过这个错误?你有没有找到任何解决方案。我怀疑我在某处错过了一些配置,但我不知道在哪里!
我的测试课看起来像这样
require DOCROOT . 'tests/classes/DatabaseTestCase.php';
class Website_MetadataTest extends DatabaseTestCase
{
protected $metadata;
public function getDataSet()
{
return $this->createXMLDataSet(DOCROOT.'tests/_data/website-metadata.xml');
}
public function setUp()
{
parent::setUp();
$this->metadata = ORM::factory('Website_Metadata')->where('website_id', '=', 1)->find_all();
}
public function testCountMetadata()
{
$this->assertCount(4, $this->metadata);
}
}