运行 Jasmine 在 Typescript 中使用 Chutzpah 进行测试

Running Jasmine tests in Typescript, with Chutzpah

我想弄清楚 typescript-jasmine-chutzpah 组合将如何最终测试我的 typescript 代码。所以我有一个示例项目(如图所示)。

我有一个包含以下内容的 app.ts 文件

class Calculator {
    add = function(x:number, y:number) {
        return x + y;
    }
}

和测试文件appTest.ts

/// <reference path="../typings/jasmine/jasmine.d.ts" />
/// <reference path="../../app.ts" />

/// <chutzpah_reference path="../jasmine/jasmine.js" />
/// <chutzpah_reference path="../../app.js" />

describe("Test Calc", function () {

    it("add function", function () {
        var calc = new Calculator(),
            res = calc.add(4, 7);
        expect(res).toBe(11);
    });
});

如果我 运行 在 testApp.ts 上进行测试,输出将是“0 次通过,0 次失败,0 次总计(chutzpah)”。但是如果我 运行 编译的 testApp.js 它似乎工作正常“1 次通过,0 次失败,1 次总计(chutzpah)。”

1) 为什么找不到.ts文件中的测试? 2) 我应该用 Typescript 还是直接用 JavaScript 来测试我的 typescript 代码?

有人可以帮我弄清楚这个简单的测试设置并让它工作吗? 请注意,我目前不使用 chutzpah.json。

如果您不使用 chutzpah.json 文件,它将无法工作。请follow this示例以查看如何使其正常工作。

当我阅读文档(或其他一些文章)时,很明显 chutzpah.json 对于 运行 的简单测试是可选的,但使其工作的唯一方法是在项目根目录添加 chutzpah.json,内容如下:

{
  "Framework": "jasmine",

  "References": [
    { "Path": "app.js" },
    { "Path": "scripts/jasmine/jasmine.js" }
  ],

  "Tests": [
    { "Path": "scripts/tests/apptest.js" }
  ]
}

因此,对于任何未来的参考,chutzpah.json 是 所必需的,以便大胆地 运行 测试。另外,请注意测试文件中不再需要 "chutzpah_reference"。