如何使用tsUnit和Node测试Typescript模块?

时间:2016-02-03 19:10:10

标签: javascript node.js unit-testing typescript

Typescript 1.6.2,tsUnit 2.0.1,Node 5.4.1,OSX 10.11.2

我想使用tsUnit在我的Typescript module中对单元测试函数进行单元化。 AFAIK,tsUnit examples仅显示如何使用Node测试Typescript 。 tsUnit Node示例显示了如何导出目标类,使其在单元测试中可以require d。这是一个简单的例子:

Foo.ts

class Foo{ ... } export = Foo;

FooTest.ts

import Foo = require('../main/Foo'); var target = new Foo();

我成功测试了一个Typescript class,但没有module 我尝试了两种测试模块的方法。两者都会导致Typescript转换错误。

MyMod.ts

方法1:遵循tsUnit class示例中的模式。

module MyMod {...} export = MyMod; 生成错误: Error... TS2339: Property 'MyMod' does not exist on type 'typeof MyMod'.

我不知道这个错误意味着什么。我无法通过Google或Stackoverflow找到任何适用的解决方案/解释。查看生成的JavaScript代码也无法帮助我。

方法2:在声明模块时导出模块。

export module MyMod {...}

这使得单元测试更加快乐,但在我的应用程序代码中,对MyMod的引用会中断。给出这样的错误:

Error... TS2304: Cannot find name 'MyMod'.

如何使MyMod功能可用于单元测试,其方式是不会破坏对这些功能的应用程序调用?

[最有可能的是,我可以使用JavaScript测试框架进行单元测试,但如果可能的话,我更喜欢使用tsUnit。]

0 个答案:

没有答案