【发布时间】:2015-07-15 20:01:11
【问题描述】:
我正在尝试在 Typescript 中编写一个单元测试来测试一个 Typescript 类,但是当测试运行时,它对这个类一无所知。
我将 Typescript (1.4) 与 Node Tools for Visual Studio (2013) 一起使用,并且测试有用地出现在测试资源管理器中。运行时失败并显示“参考错误:未定义 ClassC。”
我正在测试的课程:
class ClassC {
functionF() {
return 42;
}
}
生成的 Javascript:
var ClassC = (function () {
function ClassC() {
}
ClassC.prototype.functionF = function () {
return 42;
};
return ClassC;
})();
//# sourceMappingURL=ClassC.js.map
测试(从模板 Add -> new Item... -> TypeScript UnitTest 文件创建):
/// <reference path="ClassC.ts" />
import assert = require('assert');
export function classCTest() {
var foo: ClassC = new ClassC();
var result: number = foo.functionF();
assert.equal(result, 42);
}
生成的 Javascript:
var assert = require('assert');
function classCTest() {
var foo = new ClassC();
var result = foo.functionF();
assert.equal(result, 42);
}
exports.classCTest = classCTest;
//# sourceMappingURL=ClassC_tests.js.map
查看为测试生成的 Javascript 时,错误发生的原因就很明显了。它不包含ClassC 的必要定义。我认为包括参考路径会有所帮助,但显然没有。
如何让单元测试了解该类?
【问题讨论】:
-
导入
ClassC就像你做断言类...而不是使用///<reference...注释。这样,它将在您运行测试时被导入。
标签: visual-studio unit-testing typescript