Почему mockjax возвращает readystate 0 для встроенного json responsetext? - PullRequest
0 голосов
/ 24 января 2012

Я начинаю писать какой-то модульный тест для моего кода javascript, используя qunit и mockjax.Я следую принципу хранилища для получения моих данных.В каждом репозитории есть несколько вызовов ajax на URL, которые возвращают мне некоторые данные json.

В моем модульном тесте я хочу подделать эти вызовы, используя mockjax.Все отлично работает, когда я указываю прокси для файла с тестовыми данными json, но когда я указываю встроенную дату json в свойстве response mockjax, я получаю сообщение об ошибке (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 "error" и readyState '0'.

Любая помощь?

1 Ответ

0 голосов
/ 24 января 2012

Нашел ответ.

Оказывается, что определение типа контента в качестве глобального параметра для mockjax является виновником. Удаление этого параметра решило проблему. Я не знаю наверняка, но, похоже, это ошибка в библиотеке mockjax. Как я уже сказал, это не проблема, когда вы определяете прокси для своего объекта mockjax. Только когда вы определяете встроенный ответ, кажется, что он приводит только к состоянию готовности 0.

...