我正在使用Chutzpah测试我的TypeScript,但似乎无法识别Bing Maps CDN:“ http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0”。我尝试将其作为引用路径包含在chutzpah.json文件中,但没有任何效果。知道我做错了什么吗?
来源(MapViewer.ts):
/// <reference path="../scripts/typings/bingmaps/microsoft.maps.d.ts" />
module Viewers {
export class MapViewer {
private containerName: string;
private map: Microsoft.Maps.Map;
constructor(theContainerName: string) {
this.containerName = theContainerName;
this.map = new Microsoft.Maps.Map(document.getElementById(this.containerName));
}
}
测试(MapViewerTest.ts)
///<reference path="../../lib/jasmine/jasmine.d.ts"/>
///<reference path="../../../FrontEndTools.WebUI/Services/MapViewer.ts"/>
module Viewers {
describe("MapViewer tests",() => {
var viewer = null;
beforeEach(() => {
viewer = new MapViewer("myMapContainer");
});
it("should have a map",() => {
var result = viewer;
expect(result);
});
});
}
运行测试导致错误:“ MapViewer测试:应该有一张地图”失败ReferenceError:找不到变量:File://.../_Chutzpah.83.MapViewer.js中的Microsoft。
顺便提一下,jQuery CDN可以很好地用作参考路径。包含jQuery的源的测试成功运行。
Chutzpah.json
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "Normal",
"TypeScriptModuleKind": "CommonJS",
"TypeScriptCodeGenTarget": "ES5",
"References" : [
{ "Path": "FrontEndTools.WebUI/lib/knockout.js" },
{ "Path": "http://code.jquery.com/jquery-2.1.0.min.js" },
{ "Path": "http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0" }
]
}
最佳答案
问题在于Chutzpah假定JS文件的扩展名为.js。将来,此问题可能会得到修复,因此它假定您不打算扩展名为.js,因为这是最常见的情况。
要解决该问题,现在只需给出一个虚拟扩展名即可:
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "Normal",
"TypeScriptModuleKind": "CommonJS",
"TypeScriptCodeGenTarget": "ES5",
"References" : [
{ "Path": "FrontEndTools.WebUI/lib/knockout.js" },
{ "Path": "http://code.jquery.com/jquery-2.1.0.min.js" },
{ "Path": "http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0#dummy.js" }
]
}