Chai-as-promised - expect with promise 总是转换成一个空对象
Chai-as-promised - expect with promise always transforms into an empty object
来自 chai-as-promised 的文档
(2 + 2).should.equal(4);
// becomes
return Promise.resolve(2 + 2).should.eventually.equal(4);
expect({ foo: "bar" }).to.have.property("foo");
// becomes
return expect(Promise.resolve({ foo: "bar" })).to.eventually.have.property("foo");
但如果我尝试
import chai from 'chai';
import sinon from 'sinon';
import sinonChai from 'sinon-chai';
import dirtyChai from 'dirty-chai';
import chaiAsPromised from 'chai-as-promised';
chai.use(sinonChai);
chai.use(dirtyChai);
chai.use(chaiAsPromised);
//...
it.only('test', function() {
return expect(Promise.resolve({ foo: 'bar' })).to.eventually.have.property('foo');
});
我得到这个断言错误:
AssertionError: expected {} to have a property 'foo'
我尝试了不同的用例和断言,但它总是一样的,从expect(promise)
出来的总是一个空对象。
知道为什么吗?
我用
"chai-as-promised": "6.0.0",
"chai": "^3.5.0",
"dirty-chai": "^1.2.2",
"mocha": "3.2.0",
"sinon": "^1.17.3",
"sinon-chai": "^2.8.0"
应该可以,因为@LostJon 提到你没有展示你是如何导入 chai 库的。
例如
let chai = require("chai");
let chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
let expect = chai.expect;
describe('chai as promise', () => {
it('some async test', () => {
return expect(Promise.resolve({foo:'bar'})).to.eventually.have.property("foo");
});
});
该示例适用于以下内容:
"dependencies": {
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"mocha": "^3.2.0"
}
来自 chai-as-promised 的文档
(2 + 2).should.equal(4); // becomes return Promise.resolve(2 + 2).should.eventually.equal(4); expect({ foo: "bar" }).to.have.property("foo"); // becomes return expect(Promise.resolve({ foo: "bar" })).to.eventually.have.property("foo");
但如果我尝试
import chai from 'chai';
import sinon from 'sinon';
import sinonChai from 'sinon-chai';
import dirtyChai from 'dirty-chai';
import chaiAsPromised from 'chai-as-promised';
chai.use(sinonChai);
chai.use(dirtyChai);
chai.use(chaiAsPromised);
//...
it.only('test', function() {
return expect(Promise.resolve({ foo: 'bar' })).to.eventually.have.property('foo');
});
我得到这个断言错误:
AssertionError: expected {} to have a property 'foo'
我尝试了不同的用例和断言,但它总是一样的,从expect(promise)
出来的总是一个空对象。
知道为什么吗?
我用
"chai-as-promised": "6.0.0",
"chai": "^3.5.0",
"dirty-chai": "^1.2.2",
"mocha": "3.2.0",
"sinon": "^1.17.3",
"sinon-chai": "^2.8.0"
应该可以,因为@LostJon 提到你没有展示你是如何导入 chai 库的。
例如
let chai = require("chai");
let chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
let expect = chai.expect;
describe('chai as promise', () => {
it('some async test', () => {
return expect(Promise.resolve({foo:'bar'})).to.eventually.have.property("foo");
});
});
该示例适用于以下内容:
"dependencies": {
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"mocha": "^3.2.0"
}