我正在尝试将chai-as-promised
包与TypeScript一起使用。首先,以下代码可在简单的JavaScript中很好地发挥作用。
import * as chai from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
chai.use(chaiAsPromised);
const expect = chai.expect;
import * as sinon from 'sinon';
import { MyClass } from '.';
describe('Test my class', () => {
let myClass: MyClass;
beforeEach(() => {
myClass = new MyClass();
});
it('Should render home', () => {
const req = new RequestMock();
const res = new ResponseMock();
return expect(myClass.getHomePage(req, res)).to.be.fulfilled()
.then((returnedValue) => {
chai.expect(returnedValue).to.not.be.equal([]);
});
});
});
此代码存在以下错误:
...它指出了这一点:
interface PromisedTypeComparison {
(type: string, message?: string): PromisedAssertion; // <<--
instanceof: PromisedInstanceOf;
instanceOf: PromisedInstanceOf;
}
我测试了很多机会,这是我认为最接近解决方案的机会。
我想使用chai-as-promise
,fullfulled
...之类的rejected
函数。
我该怎么做?
答案 0 :(得分:2)
只需导入默认值 Product Year Period Sales
0 1 2000 Jan-Feb 2
1 1 2000 Mar-Apr 1
2 1 2001 Jan-Feb 4
3 1 2001 Mar-Apr 2
4 2 2001 Jan-Feb 2
5 2 2001 Mar-Apr 1
6 2 2002 Jan-Feb 4
7 2 2002 Mar-Apr 6
,一切正常:
chai-as-promised
答案 1 :(得分:2)
我认为 this answer 是您所需要的:
<块引用>添加 types for chai-as-promised
并处理 TypeScript 错误:
npm install --save-dev @types/chai-as-promised
为我工作。之前,我收到“‘断言’类型上不存在‘最终’属性。”;添加此后,每个人都很高兴:-)
我确实必须将我的 import
更改为 require
。
之前:
import chaiAsPromised from 'chai-as-promised';
之后:
import chaiAsPromised = require('chai-as-promised');
答案 2 :(得分:1)
你可以这样写
import { use as chaiUse } from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
chaiUse(chaiAsPromised);
答案 3 :(得分:0)
我认为您在断言中丢失了“。最终”或“。成为”。 尝试将其重写为
expect(myClass.getHomePage(req, res)).to.eventually.be.fulfilled;