我试图断言一个对象包含另一个(ei深度相等不能使用),但似乎严格检查嵌套的对象。

代码示例:

describe('Meta', function () {
    it('object should contains a cloned copy', function () {
        var obj = {a: 1, b: '2', c: {a: 2, b: '2'}};
        return expect(obj).deep.contains(JSON.parse(JSON.stringify(obj)));
    });
});

错误信息:

AssertionError: expected { a: 1, b: '2', c: { a: 2, b: '2' } } to have a property 'c' of { a: 2, b: '2' }, but got { a: 2, b: '2' }

有没有办法用“深度平等”功能做“包含”?

#1楼 票数:-1

而不是使用包,尝试使用eql:

expect(obj).to.deep.eql(JSON.parse(JSON.stringify(obj)));

eql比较对象中的值。

这应该够了吧。

  ask by Víctor Herraiz translate from so

未解决问题?本站智能推荐:

3回复

Mocha,Chai:断言Object包含在一个对象数组中

如果一个Array包含某个元素,Chai有一个很好的断言方法 给定一个对象数组,我想要的是类似的东西: 这可能吗?
1回复

用于检查对象数组中某些字段的Chai断言

我有一个如下所示的对象数组,并且只想对数组中的某些字段进行断言。 对象数组- 我只需要针对键和值字段进行断言,而不必担心updateBy和Dttm,所以,
1回复

在JSDOMEnv块中未执行Chai断言

我刚刚开始使用mocha , chai和jsdom编写前端单元测试。 当我尝试遵循基于这些的教程时,即使我将它们设置为失败 ,我也会通过测试。 其他所有内容jQuery, setup.js, window设置并且可以按预期运行jQuery, setup.js, window等。唯一的问题是,
1回复

使用chai和mocha和webdriverio断言错误

我收到此错误 我已经通过npm安装了chai和mocha 它运行测试,但未通过断言 编辑: 如果使用此方法,则使用setTimeout可以在测试完成甚至页面加载之前通过。
1回复

Mocha的问题,使用Chai断言库

我将main()从一个脚本导入到我的测试文件中,并且我将main()作为1个测试用例执行,尽管main包含多个函数。 我想知道如何构建我的测试,main上的每个函数都算作一个单独的测试用例,而不是整个1 async function main(config = {}) { c
1回复

如何使Chai自定义断言失败?

此最小示例自定义chai断言应该失败。 它不是。 是什么使它失败了?
3回复

如何在我的测试中断言Chai断言将失败(错误与AssertionError)

我对Error和AssertionError的继承关系以及assert.throws如何工作assert.throws 。 在我的测试代码中,我有: 以上所有 assert.throws语句均成功。 我期望他们中的一些成功和失败。 具体来说,假设AssertionError的原型为E
1回复

如何使用Chai在Mocha框架中使用backstopjs断言失败

我正在尝试使用mocha创建视觉回归框架,并使用backstopjs完成视觉差异。 我有一个小的第一次测试运行,但是当我故意未通过测试时,我希望mocha框架能够确认失败并报告此情况。 正如它所代表的那样,当运行mocha框架时,一切都按照我的预期进行,但是即使backstopjs报告失败