如何在typescript项目中使用chakramjs

How to use chakramjs for a typescript project?

本文关键字:chakramjs 项目 typescript      更新时间:2023-09-26

我正在用typescript编写一个node应用程序,我对nodejs和typescript都很没有经验。

我想用chakram来测试API端点,但是chakram缺少typescript定义。

更普遍的问题是如何导入没有定义的库,但我应该如何应用这些答案仍然让我困惑。对于我目前的理解来说,提供的答案太抽象了,所以我想要一个更具体的例子。

基本上,我不知道如何转换工作的javascript healthcheck.js:

var chakram = require('chakram'),
    expect = chakram.expect;
describe("Rest API Healthceck", function () {
    it('should respond with HTTP STATUS OK NO CONTENT', function () {
        var response = chakram.get("http://app.local/api/status", {});
        expect(response).to.have.status(204);
        return chakram.wait();
    });
});

变成它的typescript变体

我尝试使用any,因为我还不想提供我自己的类型,我只是想让它工作。

我试着在我的healthcheck.ts文件:

let it: any;
let describe: any;
let chakram: any;
chakram = require('chakram');
const expect = chakram.expect;
describe("Rest API Healthceck", function () {
    it('should respond with HTTP STATUS OK NO CONTENT', function () {
        var response = chakram.get("http://app.local/api/status", {});
        expect(response).to.have.status(204);
        return chakram.wait();
    });
});

它确实编译,但如果我试图通过./node_modules/mocha/bin/mocha dist/tests/acceptance/healthcheck.js执行mocha测试,它会抛出一个错误,即:

TypeError: describe is not a function

进一步调查错误,我也不确定这个问题是否与mocha有关,以及它的类型是如何加载的。我也在使用类型,而不是明确键入,这也可能是另一个问题。

我哪里错了?

为了使测试运行,我必须使键入意识到mocha:

./node_modules/typings/dist/bin.js install env~mocha --global

问题是由于缺少摩卡的定义,与chakramjs无关。

为了让它运行,我的typescript testcase看起来像:
let chakram: any;
chakram = require('chakram');
const expect = chakram.expect;
describe("Rest API Healthceck", function () {
    it('should respond with HTTP STATUS OK NO CONTENT', function () {
        var response = chakram.get("http://app.local/api/status", {});
        expect(response).to.have.status(204);
        return chakram.wait();
    });
});