我正在使用 CakePHP 2.X ,并且需要使用$this->request->data->object (or a Mock)
来测试Controller方法。我在控制器中有一个条件可以验证$this->request->data is empty (if (empty($this->request->data)) {EXECUTE SOMETHING})
是否有效,并且需要在测试侧的该对象中添加数据,而不要输入if语句。
我已经在网上查找内容,没有找到适合我的内容。这是控制器代码:
function default($user = null) {
$subsite = $this->Session->read('subsite');
if ($subsite == "www" || $subsite == "xxx") {
$this->redirect("/application/addtool");
return "ok1";
}
if (empty($this->request->data)) {
$this->render();
} else {
$this->request->data['Project']['actif'] = true;
$user_id = $this->Session->read('user_id');
$this->request->data['Project']['user_id'] = $user_id;
}
}
答案 0 :(得分:0)
要在测试中传递数据,请在testAction
键中为data
的第二个参数提供数据数组:
$this->testAction('/default', [
'data' => [
'some' => 'data',
],
'method' => 'post',
]);
这将使用请求数据中的['some' => 'data']
构建一个测试请求。
有关更多信息:https://book.cakephp.org/2.0/en/development/testing.html#testing-controllers