当我为浏览器内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/