如何为打字稿项目设置茉莉花
How to setup jasmine for typescript project
我需要一些关于如何使用 Jasmine 设置 TypeScript 项目单元测试的指导。
测试规范文件如下所示:
/// <reference path="../../../typings/tsd.d.ts" />
import {Mediator} from '../../../services/remoting/Mediator';
describe('Mediator', () =>
{
let mediator: Mediator;
beforeEach(() =>
{
mediator = new Mediator();
});
it('blah blah', () =>
{
expect(mediator.TEST).toBeDefined();
});
});
我使用 npm jasmine 模块进行 运行 测试。 jasmine.json 指向构建的 JS 规范文件,如下所示:
{
"spec_dir": "build/spec",
"spec_files": [
"**/*.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
当我尝试 运行 测试时,茉莉花抱怨未定义的 'define' 函数:
ReferenceError: define is not defined
我尝试在 TypeScript + Jasmine 上搜索,但没有太多信息(而且我不想使用完整的 VisualStudio)。所以,如果有人能指出我正确的方向,如何设置 typescript + jasmine 以及我的错误在哪里,我将不胜感激。
提前致谢。
看起来您正在使用 --module amd
标志进行编译,该标志是为异步模块设计的(就像您使用 RequireJS 时一样)。
如果您在 Node 上 运行,则需要提供 --module commonjs
。这将导致以下输出:
var mediator_1 = require('../../../services/remoting/Mediator');
(虽然变量的名称可能会改变,因为它会在编译 ES6 样式导入时为您动态创建一个名称)。
我需要一些关于如何使用 Jasmine 设置 TypeScript 项目单元测试的指导。
测试规范文件如下所示:
/// <reference path="../../../typings/tsd.d.ts" />
import {Mediator} from '../../../services/remoting/Mediator';
describe('Mediator', () =>
{
let mediator: Mediator;
beforeEach(() =>
{
mediator = new Mediator();
});
it('blah blah', () =>
{
expect(mediator.TEST).toBeDefined();
});
});
我使用 npm jasmine 模块进行 运行 测试。 jasmine.json 指向构建的 JS 规范文件,如下所示:
{
"spec_dir": "build/spec",
"spec_files": [
"**/*.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
当我尝试 运行 测试时,茉莉花抱怨未定义的 'define' 函数:
ReferenceError: define is not defined
我尝试在 TypeScript + Jasmine 上搜索,但没有太多信息(而且我不想使用完整的 VisualStudio)。所以,如果有人能指出我正确的方向,如何设置 typescript + jasmine 以及我的错误在哪里,我将不胜感激。
提前致谢。
看起来您正在使用 --module amd
标志进行编译,该标志是为异步模块设计的(就像您使用 RequireJS 时一样)。
如果您在 Node 上 运行,则需要提供 --module commonjs
。这将导致以下输出:
var mediator_1 = require('../../../services/remoting/Mediator');
(虽然变量的名称可能会改变,因为它会在编译 ES6 样式导入时为您动态创建一个名称)。