检查Karma Jasmine单元测试用例中的日期格式

时间:2016-05-06 10:19:15

标签: javascript unit-testing date jasmine karma-jasmine

我有一个将日期转换为新的Date()

的逻辑
function ajaxRequest() {
     Y.io('//www.mbsmfg.co/shop/coles-grey/?format=json-pretty', {
         on: {
             success: function (x, o) {
                 var parsedResponse;
                 try {
                     d = Y.JSON.parse(o.responseText);
                 } catch (e) {
                     console.log("JSON Parse failed!");
                     return;
                 }

                 for (var i = 0; i < d.items.length; i++) {
                     var htmlString = '<h1>' + d.items[i].sku + d.items[i].price '</h1>' + d.items[i].body;
                     Y.one('.product-sharing').append(htmlString);
                    alert(htmlString);
                 }

             }
         }
     });
 }

Y.use('node', function() {
     Y.on('domready', function() {
         ajaxRequest();
     });
 });

我编写了测试用例来检查传递的日期是否采用new Date();

的格式
$scope.isValidatStartDate=function("2016-05-04")
{
   var dateList = date.split("-");
   $scope.endMaxDate = new Date(dateList[0], dateList[1] - 1, dateList[2]);
}

但测试失败,因为 Karma调试器控制台中的消息说..

  

debug.html:38预计日期(2016年5月4日星期三00:00:00 GMT + 0530(印度   标准时间))将于2016年5月4日星期三00:00:00 GMT + 0530(印度   标准时间)&#39;。

测试期望Date对象为string.Hence它失败。如果日期对象确实是日期对象,我如何检查而不是字符串?

1 个答案:

答案 0 :(得分:1)

请再次比较日期:

var date = new Date("Wed May 04 2016 00:00:00 GMT+0530 (India Standard Time)")
expect(scope.endMaxDate).toBe(date)

还检查你的代码:

$scope..endMaxDate

你有两点