これは create function の単体テストです:
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
詳細については、このモジュールを使用して安静なコントローラーを実装します