【问题标题】:Jasmine fails in toEqual with objects that look the sameJasmine 在 toEqual 中与看起来相同的对象失败
【发布时间】:2014-05-21 15:17:12
【问题描述】:

我已阅读其他主题,尝试了多种解决方案,但似乎没有任何效果。

测试:

it("parses string array", function(){
    var usArr = ["integer.ImageViewer.main.RawBuffer", "dio.ImageViewer.main.performUnitCalibration"];
    var newJson = [
        {
            fname : "integer.ImageViewer.main.RawBuffer",
            con : "ImageViewer.main",
            type : "integer",
            vars : [{name : "RawBuffer"}]
        },
        {
            fname : "dio.ImageViewer.main.performUnitCalibration",
            con : "ImageViewer.main",
            type : "dio",
            vars : [{name : "performUnitCalibration"}]
        }
    ];
    expect(JFactory.parseToJSON(usArr)).toEqual(newJson);
})

错误信息:

Expected 

'[{"fname":"integer.ImageViewer.main.RawBuffer",
"com":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"com":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]' 

to equal 
'[{"fname":"integer.ImageViewer.main.RawBuffer",
"con":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"con":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]'.


Error: Expected 

'[{"fname":"integer.ImageViewer.main.RawBuffer",
"com":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"com":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]' 

to equal 
'[{"fname":"integer.ImageViewer.main.RawBuffer",
"con":"ImageViewer.main",
"type":"integer",
"vars":[{"name":"RawBuffer"}]},
{"fname":"dio.ImageViewer.main.performUnitCalibration",
"con":"ImageViewer.main",
"type":"dio",
"vars":[{"name":"performUnitCalibration"}]}]'.

我已经尝试对两个对象进行 JSON 字符串化,尝试过并尝试过:

expect(_.isEqual(JFactory.parseToJSON(usArr), newJson)).toEqual(true);

这里建议:Jasmine toEqual for complex objects (mixed with functions) 这给了我: ReferenceError: _ 未定义

我完全迷失了,因为这些对象似乎完全一样。

【问题讨论】:

    标签: angularjs unit-testing jasmine karma-jasmine


    【解决方案1】:
    "com":"ImageViewer.main",
    
    "con":"ImageViewer.main",
    

    你在一个写com,在另一个写con,它们绝对不相等。

    【讨论】:

    • 啊,作为一个法律上的盲人程序员的缺点又一次暴露出来了。谢谢。
    • 我评估了节点中的字符串,并做了JSON.stringify(x)===JSON.stringify(y),因为它返回false,这意味着你在代码中的某个地方有错字,别担心,即使是视力好的人也很难发现,干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    相关资源
    最近更新 更多