0

ajax 経由で jquery によって呼び出されるアクションのテストの作成に問題があります。アクションによってビューに送り返されているデータをキャッチする方法がわからないので、それが正しいかどうかをアサートできます。私の $.ajax(...) スクリプトは、コントローラーによってエコーされた結果を textarea 要素に挿入しますが、テスト スクリプトでは、結果は null です。失敗メッセージ:

Failed asserting that null matches expected '...

これまでの私のテストコードは次のとおりです。

$this->getRequest()->setRawBody('some json containing input params im testing');
$this->getRequest()->setMethod('GET');
$this->getRequest->setHeader('HTTP_X_REQUESTED_WITH','XMLHttpRequest');

$this->dispatch('my url');
$result = json_decode($this->getResponse()->getBody(),true);

$expectedResult = 'some string';
$this->assertEquals($expectedResult, $result['targeted element']);
4

1 に答える 1

1

以下に私が書いた推奨事項は、私がテストした方法であり、はるかに有用でエラーが発生しにくいことが証明されています。

  1. 「コントローラー」のテストはありません
  2. モデルと値オブジェクトをサービスに挿入します。
  3. コントローラーにサービスを挿入します。
  4. モデル値オブジェクト、およびサービスをテストします。
  5. a を使用しJavaScript testing frameworkて JS をテストする -- Ajax 呼び出しをモックできる優れたオプションがたくさんあります。
于 2012-05-19T21:22:53.967 に答える