2012-01-24 12 views
0

私は、qunitとmockjaxを使って、私のjavascriptコードの単体テストを書き始めています。私は私のデータを取得するためのリポジトリの原則に従っています。各リポジトリには、いくつかのjsonデータを返すurlへのいくつかのajax呼び出しがあります。インラインjson responsetextでmockjaxがreadystateを0に戻すのはなぜですか?

私のユニットテストでは、mockjaxを使ってこれらの呼び出しを偽装したいと思っています。テスト用のjsonデータを持つファイルへのプロキシを指定するときはすべてうまく動作しますが、mockjaxの応答プロパティでインラインjsonの日付を指定すると、エラー(readystate 0)が発生します。私のテストを参照してください

:私は私の生産コードでmockjax呼び出しの応答を記録した場合

asyncTest('getAll03', function() { 

    var id = $.mockjax({ 
     url: 'myurl', 
     contentType: 'text/json', 
     response: function (settings) { 
      this.responseText = { test: "123" }; // my test data 
      start(); // needed because otherwise the test will keep running on and on 
     } 

    }); 

    // The actual call 
    personRepository.getAll({ 
     ready: function (persons) { 
      console.log(persons); 

      equal(2, 5, "..."); // temp equal to see if test is working. 
      start(); // Start validation 
     } 
    }); 

}); 

は、私が見ることは、Ajaxのエラー処理メソッドで終わります。私はテストデータを含んでいますが、statusText "error"とreadyState '0'を含んでいます。

助けが必要ですか?

答えて

0

答えを見つけました。

mockjaxのグローバル設定としてコンテンツタイプを定義することが原因であることが判明しました。この設定を削除すると、問題が解決しました。私は確かに分かりませんが、それはmockjaxライブラリのバグであるようです。私が言ったように、これはあなたがあなたのmockjaxオブジェクトにプロキシを定義するときには問題ではありません。インラインレスポンスを定義した場合にのみ、読み取り値が0になるようです。

関連する問題