2012-03-09 18 views
1

我正在通过SimpleTest在CakePHP 1.3中编写单元测试。从CakePHP中的SimpleTest TestAction获取LastInsertId

我运行下面的代码,它的工作原理(它创建如预期)

$this->testAction('/post/add/user:'. $userId, array('method' => 'post'));

我需要找到后添加的ID在接下来的两个测试使用 - 修改帖子和删除帖子。我已经尝试通过模型引用(即$ Post-> id,$ this-> Post-> id),但似乎通过testAction的工作方式不同。

我也意识到我可以查询max(id),但是如果碰巧是另一个用户在测试系统谁插入一个新的帖子在几乎同时,它可能会搞砸了结果(至少据我所知 - 纠正我,如果我错了)。

回答

1

通常情况下,从控制器,你应该使用

$this->Post->getLastInsertID(); 

这是连接方法的包装。

$this->Post->id 

用于设置一个id然后检索或设置数据。