我需要一些指导如何使用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();
});
});
Run Code Online (Sandbox Code Playgroud)
我使用npm jasmine模块来运行测试.jasmine.json指向内置的JS规范文件,如下所示:
{
"spec_dir": "build/spec",
"spec_files": [
"**/*.js"
]
}
Run Code Online (Sandbox Code Playgroud)
构建规范文件如下所示:
/// <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 () { …Run Code Online (Sandbox Code Playgroud) 假设我们在TypeScript中有以下2个外部模块:
export module My.Services.Common
{
export class Helper
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
和
export module My.Services
{
export class Connection
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
现在在我的应用程序中,我想使用Connection和Helper类.我想要实现的类似于C#中的以下代码:
using My.Services;
using My.Services.Common;
Run Code Online (Sandbox Code Playgroud)
或至少只是
using My.Services;
Run Code Online (Sandbox Code Playgroud)
但看起来我无法同时使用Helper和Connection工作.如果我写:
import {My} from './services/common/Helper';
import {My} from './services/Connection;
Run Code Online (Sandbox Code Playgroud)
导致错误"重复标识符'我'".这是合乎逻辑的.所以我的问题是如何从相同(或嵌套)的模块中使用不同的类?
我想在javascript/typescript中为Date原型添加一个getWeekNumber函数.我想用接口becease来做,否则我得到一个错误,他不知道方法getWeekNumber().
首先,我尝试使用标准的Date界面,如下所示:
interface Date {
getWeekNumber(): number;
}
Run Code Online (Sandbox Code Playgroud)
这决定了Date的所有方法都不再可调用了.
我想知道有一种方法可以使用接口扩展Date.