Tch*_*nax 8 javascript unit-testing chai typescript chai-as-promised
我正在尝试将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([]);
});
});
});
Run Code Online (Sandbox Code Playgroud)
这段代码出现以下错误:
...它指出了这一点:
interface PromisedTypeComparison {
(type: string, message?: string): PromisedAssertion; // <<--
instanceof: PromisedInstanceOf;
instanceOf: PromisedInstanceOf;
}
Run Code Online (Sandbox Code Playgroud)
我测试了很多机会,这是我最接近我认为的解决方案的机会。
我想使用chai-as-promiselike fullfulled, rejected... 等的功能。
我怎样才能做到?
Fra*_*ans 11
我认为这个答案正是您所需要的:
添加和 的类型
chai-as-promised,以解决 TypeScript 错误:
npm install --save-dev @types/chai-as-promised
为我工作。之前,我得到“属性‘最终’在‘断言’类型上不存在。”;添加此后,每个人都很高兴:-)
我确实必须将我的更改import为require.
前:
import chaiAsPromised from 'chai-as-promised';
Run Code Online (Sandbox Code Playgroud)
后:
import chaiAsPromised = require('chai-as-promised');
Run Code Online (Sandbox Code Playgroud)
小智 5
只需导入默认值,chai-as-promised一切都会起作用:
import * as chai from 'chai'
import chaiAsPromised from 'chai-as-promised'
chai.use(chaiAsPromised)
Run Code Online (Sandbox Code Playgroud)
我认为您在断言中缺少“.最终”或“.成为”。尝试将其重写为
expect(myClass.getHomePage(req, res)).to.eventually.be.fulfilled;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4747 次 |
| 最近记录: |