Сбой Qunit при использовании с Date.js - PullRequest
1 голос
/ 16 сентября 2011

Я использую Qunit и Date.js для тестирования некоторых функций API, которые я написал.Вот мой код:

asyncTest("createDeal", 4, function () {
    var okStartDate = Date.today().addDays(4),
        notOkStartDatePast = Date.today().addDays(-1),
        notOkStartDateFuture = Date.today().addDays(1),
        okEndDate,
        notOkEndDateForOkStartDate;

        okEndDate = okStartDate.addDays(8);
        notOkEndDateForOkStartDate = okStartDate.addDays(1);

    $.post(createApiUrl("deal/create/1"), {"start_date" : okStartDate, "end_date" : notOkEndDateForOkStartDate}, function(data) {
        equal(data, '{"result":"fail"}', "The expected error was thrown");
    });

    $.post(createApiUrl("deal/create/1"), {"start_date" : notOkStartDatePast, "end_date" : okEndDate }, function(data) {
        equal(data, '{"result" : "fail"}', "The expected error was thrown");
    });

    $.post(createApiUrl("deal/create/1"), {"start_date" : notOkStartDateFuture, "end_date" : okEndDate }, function(data) {
        equal(data, '{"result" : "fail"}', "The expected error was thrown");
    });

    $.post(createApiUrl("deal/create/1"), {"start_date" : okStartDate, "end_date" : okEndDate }, function(data) {
        equal(data, '{"result" : "success"}', "Params passed in were OK. Query ran OK.");

        start();
    });
});

Qunit продолжает падать в первом тесте, сообщая мне:

TypeError: Object [object DOMWindow] has no method 'getTime'

И выбрасывает всю функцию в asyncTest.Я что-то не так делаю, или это ошибка в Qunit или Date.js?

1 Ответ

0 голосов
/ 17 сентября 2011

Использование объектов Date или их передача - это то, что JS (или, может быть, Date? Не знаю) действительно не нравится.Я изменил свой вызов функции на:

$.post(createApiUrl("deal/create/1"), {"start_date" : notOkStartDatePast.toISOString(), "end_date" : okEndDate.toISOString() }, function(data) {
        equal(data, '{"result" : "fail"}', "The expected error was thrown");
    });

Я собираюсь оставить вопрос открытым на некоторое время, если кто-то захочет объяснить, почему это работает, а мой оригинальный код - нет.

...