用JStesting文件testing用Karma和Jasmine编译的TypeScript
我有一个具有以下结构的项目:
build - out.js spec - foo.spec.js - bar.spec.js src - foo.ts - bar.ts
这两个.ts文件被构build到out.js
。 在我的.spec.js
文件中,我希望能够轻松地引用out.js
当在纯JS项目中使用Karma / Jasmine时,我只需要使用RequireJS,并将我的testing文件封装在define(['a'], function(a) { ... });
文件。 然后,在a.js
,内容将如此包装:
define([], function() { Foo.prototype. ....... Foo.prototype. ....... return Foo; });
但是,由于out.js将由TypeScript编译器构build,因此无法封装在define(...)
块中,因此无法使用RequireJS正确导入它。
澄清:
用下面的手写JS,我可以把它导入到我的testing文件中:
define([], function() { function Bla() { } Bla.prototype.hi = function () { return "hey"; }; return Bla; });
与类似的JS,但用TypeScript编译器构build,因此缺lessdefine([])
包装,我简单地得到undefined
时,我将其导入到我的testing。
var Bla = (function () { function Bla() { } Bla.prototype.hi = function () { return "hey"; }; return Bla; })();
我怎样才能configurationTypeScript编译器来包装我的编译类在define()
包装,或者我怎样才能configuration我的testing导入类没有被包装在一个define()
包装?
你应该使用“–module amd”参数
在Visual Studio 2015中:Project /“您的项目”属性/ Typescript Building / module system / amd
和下一个:
bla.ts:
function Bla() { } Bla.prototype.hi = function () { return "hey"; }; export = Bla;