代码实体与Doctrine 2的关联

时间:2014-05-13 08:51:56

标签: unit-testing symfony doctrine-orm codeception

我正在使用Codeception对我的Symfony 2应用程序进行单元测试。

对于一个测试,我想以一对一的关系获取关联的实体,但我不能在我的生活中弄明白该怎么做,因为无论我怎么做,代码都会抱怨。

我的第一次尝试:

    $log_id = $I->grabFromRepository('BM2SiteBundle:Realm', 'log', array('id' => $realm_id));

错误:

  

1)无法在RealmBasicsCest :: testRealmView中测试领域细节   (/卷/用户   数据/用户/汤姆/站点/ BM2 / SRC / BM2 / SiteBundle /测试/功能/ RealmBasicsCest.php)   对不起,我无法从存储库中获取   “BM2SiteBundle:境界”, “日志”,{ “id为”:1}:   Doctrine \ ORM \ Query \ QueryException:[语义错误]第0行,第9列   'log FROM BM2 \ SiteBundle \ Entity \ Realm'附近:错误:无效   PathExpression。必须是StateFieldPathExpression。

第二次尝试:

    $log_id = $I->grabFromRepository('BM2SiteBundle:EventLog', 'id', array('realm' => $realm_id));

错误:

  

1)无法在RealmBasicsCest :: testRealmView中测试领域细节   (/卷/用户   数据/用户/汤姆/站点/ BM2 / SRC / BM2 / SiteBundle /测试/功能/ RealmBasicsCest.php)   对不起,我无法从存储库中获取   “BM2SiteBundle:事件日志”, “ID”,{ “境界”:1}:   Doctrine \ ORM \ Query \ QueryException:单值关联路径   DQL查询中不支持表达式反向。用一个   显而易见的连接。

一对一关系的定义:

one-to-one field="log" target-entity="EventLog" inversed-by="realm" fetch="EXTRA_LAZY"

为了进一步测试,我需要日志的id来构造一个URL。

0 个答案:

没有答案