操作
Enhancement(機能追加・改善) #3395
未完了機能テストでJSON形式のレスポンス内容をチェックするためのテスターを追加
開始日:
2013-09-10
期日:
進捗率:
0%
予定工数:
説明
Overview (概要)¶
現状、JSON API の機能テストを書く際には下記のようなコードを書く必要がある。JSON の内容をチェックする度に sfTestFunctional のメソッドチェインを抜ける必要があり、記述も冗長になってしまう。これを簡略化するためのテスターを作成する。
$browser
->get('/activity/search.json', array('apiKey' => $apiKeyMember1))
->with('response')->isStatusCode(200);
$response = json_decode($browser->getResponse()->getContent(), true);
$t->is($response, array(
'status' => 'success',
'data' => array(
array(
'id' => '1',
...
'created_at' => 'Tue, 10 Apr 2012 13:20:18 +0900',
),
),
));
Spec (仕様)¶
JSON 形式のレスポンスを下記のような記述でチェックできるようにする。
$browser
->get('/activity/search.json', array('apiKey' => $apiKeyMember1))
->with('response')->isStatusCode(200)
->with('json')->equals(array(
'status' => 'success',
'data' => array(
array(
'id' => '1',
...
'created_at' => 'Tue, 10 Apr 2012 13:20:18 +0900',
),
),
));
Youichi Kimura さんが11年以上前に更新
無名関数 (PHP >= 5.3.0) が使えればこう書きたい
$browser
->get('/activity/search.json', array('apiKey' => $apiKeyMember1))
->with('response')->isStatusCode(200)
->with('json')->assert(function($t, $data)
{
$t->is($data['status'], 'success');
$t->is(count($data['data']), 1);
$t->is($data['data']['id'], 1);
});
Youichi Kimura さんが11年以上前に更新
- ステータス を Accepted(着手) から New(新規) に変更
note-2 について、テストコードも PHP5.2 環境で動作できた方が良い(PHP5.2でも正しく動くかテストする目的で)との指摘を受けたため一旦取り下げます。
操作