当我为浏览器内TS代码编写测试时,遇到以下问题。我的“测试”代码文件与“应用程序”代码文件位于一个单独的文件夹中(我不愿意放弃这种安排)。因此,为了导入我的“app”模块,我必须这样做:

    // tests/TS/SubComponent/Module.Test.ts
    import m = module("../../Web/Scripts/SubComponent/Module");

这样编译就可以了。但是当加载到浏览器中时,它显然将不起作用,因为从在浏览器中运行RequireJS的 Angular 来看,该模块位于“app/SubComponent/Module”(通过Web服务器和RequireJS配置重新映射之后)。

使用TS 0.8.3,我可以提取this clever trick,但是在0.9.0中它不再起作用,因为现在是编译器doesn't let me treat a module as an interface

因此,问题是:您如何测试客户端代码?
显然,我不能成为唯一的这样做的人,可以吗? :-)

最佳答案

我不知道您是否正在使用Visual Studio-接下来的一点是Visual Studio特有的...

这是我的方法:



资料来源:Include JavaScript and TypeScript tests in Visual Studio

使用“添加为链接”可使脚本在测试项目中可用。

不使用Visual Studio?我建议创建一个任务/作业/批处理文件,以将文件复制到测试文件夹中。您甚至可以使用tsc为您完成此任务。

关于javascript - TypeScript:如何测试客户端代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17238696/

10-11 23:59
查看更多