如何使用chakramjs作为打字稿项目?

时间:2016-10-28 14:44:31

标签: javascript node.js typescript mocha typescript2.0

我正在使用typescript编写节点应用程序,对nodejs和typescript都很缺乏经验。

我想使用chakram来测试API端点,但是chakram lacks typescript definiton

更一般的问题是how to import a library without definitions,但我应该采用答案的方式仍然没有找到我。提供的答案对我目前的理解来说太抽象了,所以我想要一个更具体的例子。

基本上,我不知道如何转换有效的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();
    });
});

到其打字稿中。

我尝试使用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 and how its types are loaded有关。我也在使用打字而不是明确打字,这也可能是另一个问题。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

为了进行测试,我必须让打字知道mocha:

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

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

为了使它运行,我的打字稿测试用例看起来像:

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();
    });
});