错误:未捕获的AssertionError:期望{Object(response)}等于{Object(response)}

时间:2016-10-02 16:45:25

标签: json node.js unit-testing mocha chai

我正在尝试deepEqual尝试将结果数据的确切结构与样本数据进行比较时,在测试用例中遇到问题。

以上是我用实际数据的结果创建的样本json数据。

代码:

it('comparing structures',()=>{
        var result = instance.parseResponse(input,esResponse);
        console.log(result);
        assert.deepEqual( result, expectedJSON);
    });

在控制台中,我得到了结果。

enter image description here

获取结果我正在创建样本数据。

代码:

    var expectedJSON={
    "response":{
    "aggregate":{
        "average":43.833333333333336,
        "count":6,
        "max":90,
        "min":10,
        "total":263
    },
    "endDate":"Tue Jul 05 2016 05:30:00 GMT+0530 (India Standard Time)",
    "groupBy":"datetime",
    "metricType":"distance_metric",
    "quarters":[{
        "aggregate":{
            "average":0,
            "count":undefined,
            "max":0,
            "min":0,
            "total":0
        },
        "quarter":4,
        "startDate":"Invalid Date"
    }],
    "startDate":"Tue Jan 12 2016 05:30:00 GMT+0530 (India Standard Time)",
    "type":"person"
}
};

我这样做是因为我需要创建精确的Json结构,并且任何东西都可能是结构应该匹配的结果。

但是我得到了失败测试用例

2 个答案:

答案 0 :(得分:0)

使用deepEqual时,它不仅会检查对象的结构,还会检查对象的类型。在这种情况下,它由__proto__

给出

答案 1 :(得分:0)

deepEqual有很多问题,现在已经老了。许多新的ECMA功能也不受支持。我发现这个非常有趣:https://github.com/zubuzon/kewlr