2011-09-16 4 views
1

Qunit과 Date.js를 사용하여 필자가 작성한 API 함수를 테스트하고 있습니다.Date.js와 함께 사용하면 Qunit이 손상됩니다.

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의 버그입니까?

답변

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

: 나는 내 함수 호출을 변경했습니다.