我需要为 AngularJS 应用程序编写单元测试,该应用程序大量使用 Google Maps API v3(计算距离、在地图中创建标记等),并且我知道我应该以某种方式创建或模拟地图画布,以便我可以对使用 Google Maps 的功能进行单元测试API 并在画布上创建标记,但我不知道如何做到这一点,而且我无法找到任何关于如何基于 Google Maps API 进行单元测试(最好使用 AngularJS/Jasmine)应用程序的好的教程/资源。
任何像这样的单元测试的工作示例(即使是最简单的示例)都将不胜感激。
从您上面的评论来看,您似乎可能需要以下信息(如果您不需要,请忽略): 这是我必须向您提供的大量解释,如果我将其全部输入,那么这些解释将相当于一本小说。因此,我将向您链接很多文章,这些文章比我向您解释每一篇文章的效果要好得多。
Angular 是关于依赖注入 http://docs.angularjs.org/guide/di。依赖注入是vital如果您正在进行任何单元测试。为了完整起见,我假设您不知道什么是依赖项注入,并提供一个快速解释(如果您已经知道这一点,请原谅我):依赖项注入正在设计您的代码,以便可以通过争论。依赖项可以是它所在代码块外部的任何代码。这就是为什么在 Angular 中你必须在控制器中包含 $scope,或者可能是 $http 或 $resource...因为这些正在被injected进入你的控制器。在单元测试中,这允许您模拟这些对象并将它们传入,以便您可以以受控的方式查看测试结果。
如果您要在控制器中使用一些外部代码(Google Maps API、Facebook API 等),您需要inject该代码通过将其包装在service http://docs.angularjs.org/guide/dev_guide.services.creating_services and 将其注入到您的控制器中 http://docs.angularjs.org/guide/dev_guide.services.injecting_controllers.
另外,您可能想要创建指令 http://docs.angularjs.org/guide/directive对于实际的地图片段,作为 DOM 操作(例如 Google 地图 API 中的 new Map() 所做的操作)应该在指令中完成。然后你只需测试该指令。有关测试指令的指导,我建议查看Angular 的指令测试在其 Github 存储库中作为示例 https://github.com/angular/angular.js/tree/master/test/ng/directive。基本上你编译指令,并测试操作它的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)