这是我对创建功能的单元测试:
public function testCreate() {
$this->routeMatch->setMatchedRouteName('restful');
$this->request->setMethod('POST')
->setContent('name=A');
$result = $this->controller->dispatch($this->request);
$response = $this->controller->getResponse();
$this->assertEquals(403, $response->getStatusCode());
$this->assertArrayHasKey('id', $result);
}
这是我的功能:
public function create($data) {
if (empty($data)) {
$this->response->setStatusCode(400);
return;
}
for ($i = 0; $i < count(self::$ideas); $i++) {
if (self::$ideas[$i]['name'] == $data['name']) {
$this->response->setStatusCode(404);
return;
}
}
//@todo: secure the API
self::$index++;
$tmpArray = array('id'=>self::$index, 'name'=>$data['name']);
$this->response->setStatusCode(403);
}
但似乎 $data 总是空白。我在部分编写单元测试时错了吗?当我尝试将 curl POST 与 一起使用时-d
,$data 具有我通过 发布的价值curl
。我很困惑这里有什么问题?
感谢阅读并期待您的回答:)
回答
我想出了我成功的单元测试http://pastebin.com/fwFe0Mi3
有关更多信息,我使用此模块来实现 restful 控制器