如何断言json从chai的承诺返回?

时间:2016-10-12 20:10:00

标签: javascript node.js chai chai-as-promised

我正在尝试为承诺返回的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-promise和chai-json-equal分开工作,但不是在一起。 你们有这个,解决方法或我可以使用的其他库的解决方案吗?

1 个答案:

答案 0 :(得分:0)

chai-json-equal现在还没有更新一年,所以我怀疑任何人都会回答这个问题。

尤其是当有更简单的解决方案时。

而不是:

return expect(Promise.resolve(json)).to.eventually.jsonEqual(json);

写:

return expect(Promise.resolve(json)).to.eventually.deep.equal(json);

测试通行证。