Project

General

Profile

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

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

Added by Youichi Kimura almost 6 years ago. Updated about 2 years ago.

Status:
New(新規)
Priority:
Normal(通常)
Target version:
Start date:
2013-09-10
Due date:
% Done:

0%


Description

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',
    ),
  ),
));

History

#1 Updated by Youichi Kimura almost 6 years ago

  • Status changed from New(新規) to Accepted(着手)

#2 Updated by Youichi Kimura almost 6 years ago

無名関数 (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 Updated by Youichi Kimura almost 6 years ago

  • Status changed from Accepted(着手) to New(新規)

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

#4 Updated by kaoru n about 2 years ago

  • Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.9.0

Also available in: Atom PDF