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 に答える