我如何单元测试使用templateUrl加载模板的指令?
由于$httpBackend是一个模拟,它也不会加载模板.
我希望能够使用类似的东西
$httpBackend.whenGET(/^\/views\//).passThrough();
并让它实际获得模板,但我还没弄明白如何正确地做到这一点.
我想我对如何单元测试指令感到困惑.
免责声明:我没有测试经验,也没有使用茉莉花和测试.
任何帮助表示赞赏.
IMO最简单的测试依赖于模板的指令(由templateUrl引用)的方法是将这些模板预先放在$templateCache中.通常这是由构建过程完成的.
原文链接:https://www.f2er.com/angularjs/140896.html更详细:每个模板标记都转换为JavaScript代码并放入$templateCache.此外,还会生成一个AngularJS模块(模块名称是模板的路径).
通过应用这种技术,我们只有JavaScript文件可以处理,我们不需要模拟任何HTTP调用.缺点是您需要额外的构建步骤.
我相信最初这种技术是由Vojta Jina:https://github.com/vojtajina/ng-directive-testing的优秀存储库推广的,您可以在其中看到模板准备here以及引用模板预载here的模块的实际测试.