将Typescript类导入Jasmine测试(<type>不是构造函数错误)

时间:2016-10-15 21:14:35

标签: javascript unit-testing typescript jasmine

如果我在打字稿文件(DateTimeConverter.ts)中定义了一个类:

export class DateTimeConverter{
    constructor(){
    }
    //Other methods
}

然后我想导入这个类来在Jasmine中进行一些单元测试,所以在我的规范中我导入它:

var DateTimeConverter = require('../path/to/DateTimeConverter');

为什么我不能在单元测试中使用该类:

var timeConverter = new DateTimeConverter();

当我运行我的测试时,Jasmine给出了一个错误:

  

TypeError:DateTimeConverter不是构造函数

如何将此课程纳入我的测试中,以便测试其功能?

1 个答案:

答案 0 :(得分:2)

所以我想出了这个,并认为我会发布答案以防其他人被困在这上面。 当您导入库时,您(可能很明显)没有直接访问该类,但它是一个句柄:

ContextWrapper

然后您可以实例化它:

var DateTimeConverterLib = require('../path/to/DateTimeConverter');

然后像往常一样调用它上面的任何函数:

var timeConverter = new DateTimeConverterLib.DateTimeConverter();

像魅力一样工作,我的所有测试现在都通过了:)

希望能帮到某人