プロジェクト

全般

プロフィール

Enhancement(機能追加・改善) #3395

機能テストでJSON形式のレスポンス内容をチェックするためのテスターを追加

Youichi Kimura10年以上前に追加. 約4年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
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',
    ),
  ),
));

履歴

#1 Youichi Kimura10年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

#2 Youichi Kimura10年以上前に更新

無名関数 (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);
});

#3 Youichi Kimura10年以上前に更新

  • ステータスAccepted(着手) から New(新規) に変更

note-2 について、テストコードも PHP5.2 環境で動作できた方が良い(PHP5.2でも正しく動くかテストする目的で)との指摘を受けたため一旦取り下げます。

#4 kaoru n約7年前に更新

  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更

#5 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.9.0 から OpenPNE 3.10.x に変更

他の形式にエクスポート: Atom PDF