如何在 jasmine 规范中使用 $promise.then 模拟 AngularJS $resource

2024-01-18

I use $resource设置一些API调用,在测试时我采用了注入的通用方法$q然后做

mockMyService.doSomethingAsync.andReturnValue($q.when(successResponse))

这已经很有效,但是,我有一个如下所示的方法:

# MyService
MyService.doSomethingAsync(params).$promise.then ->
    $scope.isLoading = false

# MyService Spec
mockMyService = 
  doSomethingAsync: jasmine.createSpy('doSomethingAsync')

it 'calls service #doSomethingAsync', ->
  inject ($q) -> mockMyService.doSomethingAsync.and.returnValue($q.when(response))
  controller.methodThatWrapsServiceCall()
  scope.$apply()

  expect(mockMyService.doSomethingAsync).toHaveBeenCalled()

不幸的是当以下情况时,上面概述的模拟策略似乎不起作用$promise.then被链在末端。我最终出现以下错误:

TypeError: 'undefined' is not an object (evaluating 'MyService.doSomethingAsync(params).$promise.then')

仅以以下结尾的方法doSomethingAsync().$promise使用这种模拟策略可以毫无问题地通过测试。

(其他信息:这些是使用 Karma 和 PhantomJS 运行的 Jasmine 测试)


其实,想通了!

我刚刚改变了我的模拟以返回and.returnValue( { $promise: $q.when(response) } )

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

如何在 jasmine 规范中使用 $promise.then 模拟 AngularJS $resource 的相关文章

  • 测试 Spring 端点时如何防止 NestedServletException?

    我在尝试着测试安全配置我的一些端点受到保护 PreAuthorize oauth2 hasScope scope 当使用不具有所需范围的访问令牌通过 Postman 访问此类端点时 将返回以下内容并带有 HTTP 状态代码 403 禁止 e
  • 在 Angularjs 中格式化输入值

    我正在尝试编写一个指令 自动格式化数字
  • grailsGrails 单元测试中的应用程序访问

    我正在尝试为使用 grailsApplication config 进行一些设置的服务编写单元测试 看来在我的单元测试中 服务实例无法访问其设置的配置文件 空指针 而当我运行 run app 时它可以访问该设置 我如何配置服务以在单元测试中
  • 按 Chartjs 条形图的键对对象进行分组

    我正在尝试使用 Chart js 创建条形图 我在尝试根据每个用户的状态创建分组条形图时陷入困境 这是数据 statusId 0 firstName Joe status appealed count 1 statusId 0 firstN
  • 无法测试通过 NSubstitute 接收的 ILogger

    我有一个 Net Core 3 应用程序 并尝试在我的方法中测试对 ILogger 的调用 public class MyClass private readonly ILogger
  • 角度 ui 路由器的动态参数

    我想知道在更改状态并发送请求以从后端获取模板时如何包含参数 这是我的应用程序 angular module questionnaireApp ngAnimate ui router ui bootstrap config stateProv
  • 在 for 循环内顺序执行 Promise

    我正在努力将两个承诺链接到一个循环中 以便第二个承诺在第一个承诺得到解决之前不会启动 我看到了一个减少的例子 还无法让它工作 如果我这样做 就像我现在所做的那样 代码会并行执行 就像这样 所有异步请求都会被触发 当然结果会很混乱 请看一下
  • PHPUnit - 使用配置文件时“未执行测试”

    问题 为了提高代码质量 我决定尝试学习如何使用单元测试来测试我的代码 而不是使用平庸的最佳测试解决方案 我决定使用 Composer 安装 PHPUnit 作为个人库 它可以让我实现常见的数据库功能 起初我没有 PHPUnit 的配置文件
  • 如何创建自定义输入类型?

    例如 我想创建一个类似于 AngularJS 实现 电子邮件 的方式的自定义输入类型
  • CSV 提供的数据源第一列中存在奇数字符

    我有一个 CSV 文件 已添加到 Visual Studio 单元测试项目中 它有七列 如下所示 assessmentitemid reviewer1 reviewer2 reviewer3 reviewer4 reviewer5 revi
  • 如何识别 YouTube 播放器的音量变化

    我正在使用 angualr youtube embed 指令将 YouTube 播放器嵌入到我的 Angular Web 应用程序中 因为我必须识别播放和暂停以及音量变化事件 为了监听播放和暂停事件 我使用下面给出的代码 scope on
  • 在模态中打开模态

    我有一个有角度的 ui 模态 其中有一个按钮 单击此按钮时 我想在 Angular ui 中打开另一个模式 我该怎么做 scope open function var modalInstance modal open templateUrl
  • .NET 中有什么方法可以以编程方式侦听 HTTP 流量吗?

    我正在使用浏览器自动化来测试网站 但我需要验证来自浏览器的 HTTP 请求 即图像 外部脚本 XmlHttpRequest 对象 有没有一种方法可以以编程方式实例化代理以供浏览器使用以查看其发送的内容 我已经在使用 Fiddler 来监视流
  • Angular JS 在调用新的 $http 之前取消 $http 调用

    在 Angular JS 1 1 5 中 您可以取消之前启动的 http 调用 这两个link1 https stackoverflow com questions 16962232 in angularjs how to stop ong
  • AngularJS 插值错误

    我正在显示房间的属性 作为我正在开发的房间管理应用程序的一部分 这是输出 如您所见 Beamer 英文投影仪 的值为 Sony lamp 01 12 2013 此输出是正确的 但当我打开控制台时 我看到一些有关插值的错误 更大的分辨率 Ca
  • Java CreateProcess 错误=193,%1 不是有效的 Win32 应用程序

    我正在尝试读取和写入可扩展链接格式 ELF 下面是我收到错误的行 p r exec optimizer sourceFile sourceFile a all i 运行此行后 我收到如下错误 java io IOException Cann
  • Angularjs 模式的复选框表现得很奇怪

    我有一个有角度的应用程序plunker http plnkr co edit rac8w9g8L0eX8mlXKuVn p preview 当我们单击该按钮时 它会打开一个包含项目列表的模式对话框 其中 2 项是根据复选框表输入中的条件进行
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • Angular.js:未捕获的错误,没有模块:myapp

    我也在尝试引导 angular js 项目 这是我的index html div p Loading p div
  • 从指令动态地将角度属性添加到元素

    我正在尝试构建一个指令来更改缓慢的 ajax 调用按钮上的加载状态 基本上 这个想法是为按钮元素设置一个属性 ng loading 并让指令添加其余的内容 这是html代码

随机推荐

  • 如何调整选择下拉高度[重复]

    这个问题在这里已经有答案了 我在互联网上寻找解决方案 每个人都在谈论不同的事情或者只是说does size x help 我做了一个 Plunk 来说明我的问题 当我点击下拉菜单时 我的屏幕上最多可以看到第 20 项 我希望能够将其设置为显
  • npm 错误!在 Docker 化 Node.js Web 应用程序期间向 https://registry.npmjs.org 发出请求

    你好 我正在尝试在节点中对我的项目进行 dockerizing 并做出反应 我的操作系统是 CentOS 8 1 版本节点 12 16 1 和 Docker 版本 19 03 8 我按照节点的教程进行操作https nodejs org f
  • 为什么将 VPC 与 AWS Lambda 或 AWS DynamoDB 结合使用?

    我读到很多人都在努力将 Lambda 连接到 DynamoDB 因为他们生活在 VPC 中 但我的问题是 为什么要使用 VPC VPC 旨在保护直接连接到外部世界 又称互联网 的服务 例如 像 RDS 这样的东西 它们只是坐以待毙 等待任何
  • 类的成员字段顺序是否“稳定”?

    考虑到 c 或 c 11 我有一些数据数组 其中包含 2 N 整数 代表 N 对 对于每个偶数 i 0 2 4 6 2 N 它认为 data i data i 1 形成这样一个对 现在我想要一种简单的方法来访问这些对 而不需要编写如下循环
  • 在 ASP.NET 中将文本下载为文件

    我正在尝试将屏幕上的一些文本输出下载为文本文件 以下是代码 它在某些页面上起作用 而在其他页面上根本不起作用 谁能建议这里出了什么问题吗 protected void Button18 Click object sender EventAr
  • UI 测试中通用角色名称不完整

    我正在使用 Xcode 7 的新功能 UI 测试 记录交互后 Xcode自动生成代码 void testDoubleTapToolBarItem XCUIApplication alloc init tabBars buttons U517
  • bash/expect 脚本中的错误处理

    下面粘贴的是一个 bash 脚本 结合了 Expect 代码 其中 通过 ssh 连接到远程主机 收集文件并准备 tgz 文件 将 tgz 文件从远程主机复制到本地计算机 再次通过 ssh 连接到远程主机并删除之前创建的 tgz 文件 最后
  • 我必须在 javascript 函数中返回一些东西吗?

    在 JavaScript 函数中 我需要返回某些内容 true 或 false 吗 到目前为止 我编写的所有没有返回任何内容的函数都工作得很好 我只是好奇 不 Javascript 函数不需要返回值 如果你调用的函数不return一个值 你
  • 使用 css 或 javascript 将视频放置为 100% 高度和 100% 宽度

    我想放置一个 100 宽度和 100 高度的 html5 视频 当然带有 video 标签 该视频将在后台播放 这是一个带有图像的示例 我想要与视频完全相同的示例 我只是不知道如何做到这一点 image background image u
  • 对 Web 服务调用中的会话进行只读访问?

    我们有一个 net asmx Web 服务 它从 javascript 调用 使用 ASP Net AJAX 并且需要访问会话 WebMethod true public string DoSomethingOnTheServer 我们遇到
  • google_drive 和 google-api-client 中的法拉第冲突

    我希望能够使用 google api client gem 进行服务到服务身份验证 并使用 google drive api 访问电子表格 不幸的是 这些宝石似乎由于依赖项中需要不同版本的法拉第而发生冲突 有人知道如何解决这个问题吗 如果首
  • 当 closeonselect 为 false 时关闭 select2

    当您点击离开时 是否有更好的方法来关闭 select2 我把它关闭了 document click function event if event target hasClass select2 selection rendered eve
  • 使用 sip.js 录制 SIP 通话中的麦克风和音频

    晚上好 堆栈溢出 我的一个项目确实需要帮助 我在该项目中使用 sip js 和 VoIP 来拨打电话号码 The Goal 我想允许用户录制音频和麦克风并将数据保存在服务器上 以 base64 编码或作为文件 因此 对话结束后我可以再次听到
  • kotlin.UninitializedPropertyAccessException:lateinit 属性首选项尚未初始化

    我在多个项目中使用了共享首选项的代码 它工作正常 但现在当我在另一个项目中应用相同的代码时 它停止工作 以下是错误 kotlin UninitializedPropertyAccessException lateinit 属性首选项尚未初始
  • LLVM - 如何将 AST 转换为 IR

    我知道一个AST解析器生成的数据用于在前端生成 IR 我想知道如何解析 AST 然后将其转换为 IR 问题汇编或位码 AST 是一棵树 从 AST 到 IR 的转换涉及哪些步骤 发射LLVM IR from Clang ASTs发生在 Cl
  • 绘制大规模的networkx图:数组太大

    我正在尝试绘制带有加权边的网络图 但现在我遇到了一些困难 正如标题所示 这张图确实很大 节点数量 103362 边数 1419671 当我尝试使用以下代码绘制该图时 pos nx spring layout G nx draw G node
  • 子图是重叠的轴标签[重复]

    这个问题在这里已经有答案了 我在 python 中创建了一个包含多个子图的图形 我还在图中的一些轴上添加了各种轴标签 举些例子 plt xlabel Phase circ fontsize 10 但我注意到 当生成最终图形时 其他子图可以重
  • 如何在所有ajax调用中向URL添加参数?

    我有一个使用 jQuery 的 Backbone 应用程序 并且想要附加一个sessionId所有 ajax 调用的 URL 参数 我怎样才能在 Backbone 或 jQuery 中做到这一点 也许以全局方式而不重写 Backbone S
  • 使用 Angular 2 生成 Docx 文件

    我正在使用 angular2 我想使用对象生成 docx 文件 我希望我的 docx 文件包含页脚 页眉 表格等 我能想到的最佳解决方案是首先创建一个 HTML 文件 然后将其转换为 docx 文件 但这似乎不对 有没有更简单 更方便的方法
  • 如何在 jasmine 规范中使用 $promise.then 模拟 AngularJS $resource

    I use resource设置一些API调用 在测试时我采用了注入的通用方法 q然后做 mockMyService doSomethingAsync andReturnValue q when successResponse 这已经很有效