1

FOS Rest Bundle を使用して作成された REST API の機能テストを作成しようとしています。問題は、Symfony\Component\BrowserKit を使用すると、symfony が次のエラーをスローすることです: {"message":"Unable to find template \"AccountBundle:Account:list.html.twig\". .. }

私が実行するコードは次のとおりです。

$client = static::createClient();
$client->request('GET','/account');

ブラウザからリクエストを実行すると、正常に動作します。

コントローラーは次のとおりです。

/**
 * Get channel by ID
 * @Secure(roles="ROLE_USER")
 * @RestView()
 * @ApiDoc(
 *  resource=true,
 *  description="Get channel by id",
 *  section="Channel",
 *  output="Channel"
 * )
 */
public function getAction(Channel $channel)
{
    return array('channel' => $channel);
}

そのため、テスト シナリオでは、JSON を返す代わりに、テンプレートを読み込もうとします。

4

1 に答える 1

4

メソッドの$serverパラメーターを使用して、ヘッダーをに設定する必要があります。には、対応するヘッダーを受信した場合にのみ返すリスナーがあり、それ以外の場合は、コントローラーに対応するテンプレートを検索します。$client-request()Acceptapplication/jsonFOSRestBundleJSONAccept

$client->request('GET', '/account', array(), array(), array('HTTP_ACCEPT' => 'application/json'));

于 2013-10-16T13:32:03.533 に答える