开玩笑测试"比较值没有视觉差异."

Ste*_* H. 19 javascript unit-testing reactjs jestjs

我正在对两个非常复杂的对象进行比较,并试图在expect中使用.toEqual方法.

这是我的测试:

it('check if stepGroups data in controlData matches data in liveData', () =>    {
    var controlStore = data.controlStore
    var liveStore
    return getData().then(result => {
        liveStore = new Store()
        liveStore.loadData(JSON.parse(result))
        expect(controlStore).toEqual(liveStore)  
    })
})
Run Code Online (Sandbox Code Playgroud)

我在预期输出和接收输出之间做了一个差异,它们看起来都是一样的.还会导致此测试失败的原因是什么?我正在阅读漂亮的格式(https://github.com/facebook/jest/issues/1622).你遇到过类似的情况吗?

use*_*621 18

使用 expect(JSON.stringify(controlStrore)).toEqual(JSON.stringify(liveStore))


eur*_*00t 12

在您的代码示例中,您将比较两个Store封装一些数据的实例.因此,即使数据(result在您的情况下为json)相同,也不一定意味着两个容器实例都可以被认为是相等的.

应该可以做类似的事情expect(controlStore.getState()).toEqual(liveStore.getState()).