如果在typescript文件中定义了类(DateTimeConverter.ts):

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

然后我想导入这个类以在jasmine中执行一些单元测试,所以在我的规范中导入它:
var DateTimeConverter = require('../path/to/DateTimeConverter');

为什么我不能在单元测试中使用该类:
var timeConverter = new DateTimeConverter();

当我运行我的测试时,贾斯敏给出了一个错误:
类型错误:DateTimeConverter不是构造函数
我怎样才能将这个类引入到我的测试中,以便测试它的功能?

最佳答案

所以我想我会把答案贴出来,以防其他人被困在上面。
当您导入库时,您(可能很明显)没有直接访问该类的权限,但有一个访问该类的句柄:

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

然后可以实例化它:
var timeConverter = new DateTimeConverterLib.DateTimeConverter();

然后像平常一样对其调用任何函数:
var result = timeConverter.MyAwesomeTimeFunction();

工作起来很有魅力,我的所有测试都通过了:)
希望能帮上忙

10-06 07:54