0

qunitとmockjaxを使用して、JavaScriptコードの単体テストを書き始めています。データを取得するためのリポジトリの原則に従っています。各リポジトリには、json データを返す URL への ajax 呼び出しがいくつかあります。

私の単体テストでは、mockjax を使用してこれらの呼び出しを偽造したいと考えています。テスト json データを含むファイルにプロキシを指定するとすべて正常に動作しますが、mockjax の応答プロパティでインライン json 日付を指定すると、エラー (readystate 0) が発生します。

私のテストを見てください:

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
        }
    });

});

実稼働コードで mockjax 呼び出しの応答をログに記録すると、それが ajax エラー処理メソッドで終了することがわかります。テスト データは含まれていますが、statusText が「エラー」で、readyState が「0」です。

何か助けはありますか?

4

1 に答える 1

0

答えを見つけました。

コンテンツ タイプを mockjax のグローバル設定として定義することが原因であることが判明しました。この設定を削除すると、問題は解決しました。よくわかりませんが、mockjax ライブラリのバグのようです。先ほど言ったように、mockjax オブジェクトでプロキシを定義する場合、これは問題ではありません。インライン応答を定義した場合にのみ、readystate 0 になるようです。

于 2012-01-24T14:22:00.407 に答える