如何断言 json 从 chai 的承诺中返回?
how to assert json returned from promise with chai?
我正在尝试为从 promise 返回的 json 编写测试。
我创建了这个简单的代码,因此您可以尝试重现:
"use strict";
var chai = require("chai");
chai.should();
var chaiAsPromised = require("chai-as-promised");
var chaiJsonEqual = require('chai-json-equal');
chai.use(chaiAsPromised);
chai.use(chaiJsonEqual);
var expect = chai.expect;
describe('should', function() {
it('return true because its the same json object', function() {
var json = { "foo": "bar" };
return expect(Promise.resolve(json)).to.eventually.jsonEqual(json);
});
});
但我得到:
1) should return true because its the same json object:
AssertionError: expected {} to have the same json representation as { foo: 'bar' }
chai-as-promised 和 chai-json-equal 分开工作,但不能一起工作。
你们有解决这个问题的解决方案、解决方法或我可以使用的其他库吗?
chai-json-equal 已经一年没有更新了,所以我怀疑有人会回应问题。
尤其是当有更简单的解决方案时。
而不是:
return expect(Promise.resolve(json)).to.eventually.jsonEqual(json);
写入:
return expect(Promise.resolve(json)).to.eventually.deep.equal(json);
测试通过。
我正在尝试为从 promise 返回的 json 编写测试。 我创建了这个简单的代码,因此您可以尝试重现:
"use strict";
var chai = require("chai");
chai.should();
var chaiAsPromised = require("chai-as-promised");
var chaiJsonEqual = require('chai-json-equal');
chai.use(chaiAsPromised);
chai.use(chaiJsonEqual);
var expect = chai.expect;
describe('should', function() {
it('return true because its the same json object', function() {
var json = { "foo": "bar" };
return expect(Promise.resolve(json)).to.eventually.jsonEqual(json);
});
});
但我得到:
1) should return true because its the same json object:
AssertionError: expected {} to have the same json representation as { foo: 'bar' }
chai-as-promised 和 chai-json-equal 分开工作,但不能一起工作。 你们有解决这个问题的解决方案、解决方法或我可以使用的其他库吗?
chai-json-equal 已经一年没有更新了,所以我怀疑有人会回应问题。
尤其是当有更简单的解决方案时。
而不是:
return expect(Promise.resolve(json)).to.eventually.jsonEqual(json);
写入:
return expect(Promise.resolve(json)).to.eventually.deep.equal(json);
测试通过。