如何为typescript项目设置jasmine

时间:2015-05-13 11:26:54

标签: typescript jasmine

我需要一些如何使用Jasmine设置TypeScript项目单元测试的指导。

测试规范文件如下所示:

{
  "spec_dir": "build/spec",
  "spec_files": [
    "**/*.js"
  ]
}

我使用npm jasmine模块来运行测试。 jasmine.json指向这样构建的JS规范文件:

/// <reference path="../../../typings/tsd.d.ts" />
define(["require", "exports", '../../../services/remoting/Mediator'], function (require, exports, Mediator_1) {
    describe('factory: Mediator', function () {
        var mediator;
        beforeEach(function () {
            mediator = new Mediator_1.Mediator();
        });
        it('should have defined all required fields', function () {
            expect(mediator.ExecuteQuery).toBeDefined();
        });
    });
});
//# sourceMappingURL=Mediator.spec.js.map

构建规范文件如下所示:

ReferenceError: define is not defined

当我尝试运行测试jasmine抱怨未定义的'define'函数时:

SELECT tbl_b.ID, tbl_b.NAME, tbl_b.LAST_NAME,
       (select COUNT(*) from tbl_a where tbl_a.id = tbl_b.id) as TOTAL
FROM tbl_b
WHERE tbl_b.UNTIL_DATE >= NOW()

我曾尝试搜索TypeScript + Jasmine,但没有太多信息(我不想使用完整的VisualStudio)。所以如果有人能指出我如何设置打字稿+茉莉花以及我的错误在哪里,我将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:5)

看起来您正在使用--module amd标志进行编译,该标志是为异步模块设计的(例如,当您使用RequireJS时)。

如果您在Node上运行,则需要提供--module commonjs。这将产生以下输出:

var mediator_1 = require('../../../services/remoting/Mediator');

(虽然变量的名称可能会因为在编译ES6样式导入时为您动态创建名称而改变。)