1

我正在使用 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 中的错误?

4

1 回答 1

0

使用 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");
    });

我将把这个问题留一段时间,以防有人想解释为什么我的原始代码不起作用。

于 2011-09-16T21:30:17.320 回答