如何在角度单元测试中模拟 location.path

2024-04-01

http://blog.artlogic.com/2013/05/06/angularjs-best-practices-ive-been-doing-it-wrong-part-2-of-3/ http://blog.artlogic.com/2013/05/06/angularjs-best-practices-ive-been-doing-it-wrong-part-2-of-3/

我正在测试一个路由指令,其中 location.path 引用无法找到的模板。所以....

我想用模拟配置的 $routeProvider 来模拟路由测试,如何在 karma/jasmine 中获取 $routeProvider?

然后我尝试了最佳实践中描述的间谍模拟方法,是否有一种语法可以期待 $location.path().toBe('/path') ?

spyOn($location, 'path').andCallFake(new LocationMock().path);

我想知道我是否可以


我创建了一个fiddle http://jsfiddle.net/eitanp461/6wMJ6/这演示了模拟 $location。

  app.controller('testcont', function($scope, $location) {
      $scope.path = $location.path();
  });
  ...
  beforeEach(inject(function($controller, $rootScope, $location){    
     scope = $rootScope.$new();
     spyOn($location, 'path').andReturn('Fake location');
     $controller('testcont', {$scope:scope});
  }));
  ...
  it('should spy on $location', function($location){
     expect(scope.path).toBe('Fake location');
  });

然而,可以通过使用指令预填充 Angular 的 $templateCache 来加载模板。 业力使用ng-html2js-预处理器 https://github.com/karma-runner/karma-ng-html2js-preprocessor。这可以帮助您解决问题吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在角度单元测试中模拟 location.path 的相关文章

  • 无法使用 Karma 运行 Coverage

    我正在尝试使用 karma 运行覆盖率 但收到警告 警告 预处理 无法加载 覆盖率 它未注册 我以为我在运行 npm install g karma coverage save dev 时安装了覆盖范围 这是我的配置文件 module ex
  • 使用 $location 重定向到 AngularJS 中的新页面

    我正在使用以下 AngularJS location 进行测试 我不明白这有什么问题 只是想检查重定向是否有效 HTML Hello name
  • 我将与 ng-include 一起使用什么文件路径?

    我的角度项目的路径是这样的 web server py flask server program app static app js controllers js etc templates index html home html 索引
  • Rhino Mocks - 使用 Arg.Matches

    我有一个正在嘲笑的函数 它接受一个参数对象作为参数 我想根据对象中的值返回结果 我无法比较对象 因为 Equals 未被覆盖 我有以下代码 tourDal Stub x gt x GetById Arg
  • ng-focus 发射两次而 ng-blur 从不发射

    到目前为止 我对 Angular 已经有了相当的经验 但这似乎是在较低级别上发生的 DOM 事件传播方式的事情 由于某种原因 在我的申请的一部分中 我有ng focus and ng blur一样的input 但是ng focus事件触发两
  • 测试 AngularJS 指令的焦点

    如何测试 AngularJS 指令中的焦点 我希望以下内容能够发挥作用 describe focus test function it should focus element function var element
  • 如何保存我更改的网格中的行

    我使用 ng resource 从服务器获取数据 然后将数据放入表格网格中 如下所示 div div
  • 对 MFC UI 应用程序进行单元测试吗?

    如何对大型 MFC UI 应用程序进行单元测试 我们有一些大型 MFC 应用程序已经开发了很多年 我们使用一些标准的自动化 QA 工具来运行基本脚本来检查基础知识 文件打开等 这些由 QA 小组在日常构建后运行 但我们希望引入一些程序 以便
  • JUnit、测试和线程

    当我连续运行多个 JUnit 测试时 JUnit 是否为每次执行创建一个新线程 或者所有内容都包装在一个线程中 Thanks 这一切都在一个线程上 您没有说明如何调用测试 但例如 运行 TestSuite 将按顺序运行套件中的所有测试 如果
  • Angular js中两个$scope数组的区别

    有没有办法返回 angularjs 范围内存在的两个数组之间的差异 例如 scope user1 a b scope user2 a b c d 这两者的区别应该给我另一个 scope user3 c d Underscore js对此有不
  • 角度抛出错误 $parse:ueoe 表达式意外结束

    我网站的这一部分有错误 我无法弄清楚 因为我几个月没有更改它 错误是 Error parse ueoe http errors angularjs org 1 4 3 parse ueoe p0 event id 3FEventContro
  • 声明指令 templateUrl 相对于 root

    我目前正在声明相对于当前窗口位置的 templateUrl cvApp directive personalDetails function return restrict A templateUrl Scripts app templat
  • createSpy 在 Angular + Jasmine 中如何工作?

    我做了一个简单的工厂演示 我正在尝试使用jasmine 我能够运行测试 但我正在使用spyOn方法 我宁愿使用茉莉花 createSpy or 茉莉花 createSpyObj做同样的测试 有人可以帮助我重构我的代码 以便在我的示例中使用这
  • fullcalendar 选择回调未在移动设备中触发

    我在用全日历 https fullcalendar io 版本 2 9 1 我将日历渲染为议程周 当我从桌面上单击特定的时间段时 它会触发选择回调 但当我单击移动设备时却不会 问题是什么 selectable true select fun
  • 使用 org.apache.cordova.file 获取选定的文件大小

    使用 org apache cordova file 插件 我可以选择该文件并获取该文件的本机路径 之后 我必须限制用户根据文件大小选择文件 但我无法理解文件大小 我的问题是我无法使用该插件获取文件大小 为此我正在使用本教程 http th
  • 如何在angularjs中读取pdf流

    I got the following PDF stream from a server 如何在 AngularJS 中读取这个流 我尝试使用以下代码在新窗口中将其作为 PDF 文件打开 success function data wind
  • AngularJS:如何在 AngularJS 中使用或注入第三方库

    我是 Angular 和 Deployd 的新手 想知道如何一起使用它们 我发现 Deployd 网站中的示例很好 但它只消耗其余 API 数据 我想了解如何将 Deployd 作为 AngularJS 中的服务 例如 通过部署中可用的收集
  • 带有 Spock Stub 的泛型

    我无法为泛型类编译 Spock 存根 构造函数的签名如下 SomeClass SerSup
  • 如何对动态渲染 html 和 css 的 Java 代码进行单元测试?

    我有一个 Java 类 它从数据库获取表单定义 然后根据表单定义呈现 html javascript 和 css 它使用大量 appendable append append 来构建html 片段 这很容易出错 Jsp 和通用模板框架 例如
  • 角度模态弹出窗口中的范围问题

    我的页面上有一个模式弹出窗口 模式弹出窗口使用引导角度库 在模式的主体内部 我有一个带有 ng model 属性的文本框 按下 确定 按钮后 我想使用该文本框值

随机推荐

  • 如何在 django 中指定索引类型? (btree 和 hash 对比等)

    就像标题所说 如何在 django 模型中的字段上指定我想要的索引类型 class Person age models IntegerField db index True 现在怎么办 我如何确保它是一个btree index而不是一个ha
  • 如何使用cgi python脚本在浏览器中显示pdf文件内容及其全名?

    我希望显示 pdf 文件的完整路径及其在浏览器上显示的内容 我的脚本有一个输入 html 用户将在其中输入文件名并提交表单 该脚本将搜索该文件 如果在子目录中找到该文件 则将文件内容输出到浏览器中并显示其名称 我能够显示内容 但无法同时显示
  • 为什么我无法使用 Select 从 onChange 获取值?

    测试表单的一部分 所以 现在我只想提醒用户选择什么 JS function getData title alert title PHP 生成的 HTML
  • 如何模糊匹配相邻单元格?

    我有一行 10 000 个名字 位于两个相应的列中 每列 10 000 个 A 列中的每个单元格对应于 B 列中的相邻单元格 我想进行模糊匹配 并获得所有单元格与相邻单元格的兼容性分数 我不希望它搜索整个列与整个列 只搜索相邻的单元格 我似
  • 在哪里下载signcode.exe和其他工具

    如果您决定签署代码 您将需要 签名代码 exe 生成证书文件 cert2spc exe pvk2pfx exe 下载这些工具的最佳位置是哪里 有没有办法在不下载大量 Microsoft Windows SDK 的情况下执行此操作 从视窗软件
  • AWS elemental mediaconvert 自动旋转视频?

    我正在使用 AWS elemental media Convert 将 mp4 视频转换为 HLS 一切正常 但输出视频旋转了 90 度 是否有一个设置可以用来阻止这种情况发生 我正在 iPhone 上拍摄视频 Under 输入 gt 视频
  • 如何制作顶部有锯齿边缘的 TileGroup 布局?

    我有包含按钮的spark components TileGroup 我希望按钮像选项卡一样出现在它们所服务的 ViewStack 顶部 目前 如果我在 TileList 中有 6 个项目 它会将其布局为 2 行 其中 4 个项目位于顶部拖曳
  • HTML5 视频的多个音轨

    我正在使用 HTML5 为我的网站制作视频 理想情况下 我只有一个无声视频文件 以及与视频同步的不同语言的五个不同音轨 然后我会有一个按钮 允许用户在音轨之间切换 甚至在视频播放时也是如此 正确的音轨就会出现 视频不会暂停或重新开始或任何其
  • 使用 Passport.js 进行动态失败重定向

    这是我的atm登录功能 app post login passport authenticate local failureRedirect login error 1 function req res res redirect req b
  • Firebase 聊天应用程序 setValue 公共数据库失败错误?

    我有一个使用 Firebase 的聊天应用程序 它一直有 x 处的 setValue 失败 数据库错误 权限被拒绝 每次我输入消息时都会出错 我已经将数据库设置为公开 service cloud firestore match databa
  • Python:查找列表元素之间的差异

    给定一个数字列表 如何找到每个 i 个元素及其 i 1 th 最好使用lambda表达式或者列表理解 例如 给定一个列表t 1 3 6 目标是找到一个列表v 2 3 因为3 1 2 6 3 3 etc gt gt gt t 1 3 6 gt
  • Pandas groupby 与 sklearn 预处理相结合

    我想按特定列对 DataFrame 进行分组 然后应用 sklearn 预处理 MinMaxScaler 并存储缩放器对象 我目前的出发点 import pandas as pd from sklearn import preprocess
  • OSX:安装 python 包时出错

    目前 由于 gcc 4 0 错误 我无法安装任何 Python 包 我将复制我收到的错误的两个示例 其中一个带有pip 另一个使用手动 setup py 构建 安装方法 sgarza62 pip install PIL Downloadin
  • 如何在 Cocoa AppKit 应用程序中实现缩放/缩放

    如何在 Cocoa AppKit 应用程序中实现缩放 缩放 即不最大化窗口 而是缩放窗口及其所有子视图 我认为它在 iOS 中称为 zoomScale 可以使用 Core Animations 或 Quartz 2D 来完成吗 例如CGCo
  • 在 Eclipse ide 中找不到 Scala 主类

    我为 eclipse 安装了 scala 和 scala IDE 每次我尝试编译一个简单的 HelloWorld 时 我都会收到此消息 package asd object testobject def main args Array St
  • 如何在角度2中使用自定义http刷新访问令牌?

    我在我的应用程序中使用基于令牌的身份验证 我的后端是使用restful服务 spring 开发的 后端代码很好地生成了所需的访问令牌和带有时间线的刷新令牌 所以我用以下内容覆盖了http类 export class customHttp e
  • 球拍、包含、要求和提供不起作用

    我有一个名为 functions rkt 的文件 其中有一些函数 我正在另一个文件中工作 我们将其命名为 working rkt 我在 working rkt 中尝试了以下操作 一一 来使用 functions rkt 中定义的函数 req
  • 如何使用 System.IO.Stream 和 LINQ 读取 XML 文件

    我将像这样传递 xml 文件 File1 PostedFile InputStream reading xml file public static void readXMLOutput Stream stream System Xml L
  • TypeScript :具有原始类型约束的通用类型

    我在 TypeScript 中有以下通用类 type UserId number type Primitive string number boolean class ColumnValue
  • 如何在角度单元测试中模拟 location.path

    http blog artlogic com 2013 05 06 angularjs best practices ive been doing it wrong part 2 of 3 http blog artlogic com 20