CakePHP 3.x - fixtures导入不加载数据

时间:2015-05-25 08:50:53

标签: php unit-testing cakephp cakephp-3.0 fixture

我正在尝试在CakePHP 3.x插件中导入灯具。 当我启动测试时,我总是得到错误:

  

的UserManager \测试\测试用例\控制器\的UsersControllerTest :: testprofile中   异常' Cake \ Datasource \ Exception \ RecordNotFoundException'消息'记录未在表格中找到"用户"

这是UsersFixture.php:

namespace UserManager\Test\Fixture;
use Cake\TestSuite\Fixture\TestFixture;

class UsersFixture extends TestFixture {
    public $import = ['table' => 'users'];
}

我的测试失败,因为它无法在测试数据库中找到当前用户。

我认为用户表创建成功,但没有导入数据。

当然,许多用户都记录在我现有的用户表中,测试的用户ID是这些记录之一。

我的testIndex()方法也失败了,因为记录数总是等于0.

为什么灯具表不包含我的记录?

2 个答案:

答案 0 :(得分:7)

你当然可以在蛋糕3中导入记录。

从蛋糕烘烤cg_idle 每次对表进行更改时都需要重新生成它,但它总比没有好。给你一个很好的起点。

您还可以使用条件生成非常具体的灯具。

enter image description here

答案 1 :(得分:2)

不幸的是,我认为您的代码没有任何问题。从我所看到的,CakePHP 3.x确实支持在fixture中输入表条目,只支持表结构。

(参见文档差异:2.x:Importing table information and records,3.x:Importing table information

除非你直接修改CakePHP 3.x核心,否则我认为没有办法解决它。