使用 karma+jasmine 测试订阅角度 2 中的位置 (this.location.subscribe)

2023-12-06

我正在订阅角度定位服务在我的组件中:

this.location.subscribe((ev:PopStateEvent) => {
    this.lastPoppedUrl = ev.url;
});

我希望能够将它与我的组件的其余部分一起测试。

现在我的 component.spec.ts 文件中有这个存根

let locationStub: Partial<Location>;
    locationStub = {
}

我将其作为提供者配置到我的 TestBed 中:

{provide: Location, useValue: locationStub }

当我跑步时ng test,我收到此错误this.location.subscribe is not a function.

如何创建一个存根或间谍,以允许我传递 Location 的 .subscribe 功能。

这是一个类似的问题测试Location,但它指的是Location内的函数,而不是专门订阅Location。

任何帮助深表感谢。


你必须这样做:

beforeEach(() => {
    // Mock the location here instead, then pass to the NavBarComponent
    loc = jasmine.createSpyObj("Location", ["back", "subscribe"]);
    Location.subscribe.and.callFake(()=> Observable.of(your stubbed data to return here));
    testNavBarComponent = new NavBarComponent(loc);
});

所以你必须添加subscribe到位置服务中的可用功能列表。

重要的是要告诉调用订阅时返回什么,

这是什么Location.subscribe.and.callFake(()=> Observable.of(Your stubbed data to return here)); is for.

我尝试创建一个小型演示:

这是它的链接,您可以尝试 fork 并根据需要修改它。

https://stackblitz.com/edit/angular-testing-c25ezq?file=app/app.component.spec.ts

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

使用 karma+jasmine 测试订阅角度 2 中的位置 (this.location.subscribe) 的相关文章

随机推荐

  • 如何在 Play 2.4.0 上使用 Anorm 启用跟踪/调试输出

    在 Play 2 4 0 中 Anorm 已移至外部包 日志记录已更改为 LogBack http logback qos ch 一切都很好 但没有任何地方可以明显地跟踪 SQL 调用的类 包名称 显而易见 基于导入声明
  • 将枚举元素作为事件参数传递 C#

    是否可以将枚举元素作为事件参数传递 假设我有 public class Letters public delegate void StateChangedEventHandler object sender EventArgs e publ
  • Spark 2.x 上的 Cloudera Hive?

    看看这个 https www cloudera com documentation spark2 latest topics spark2 known issues html hive on spark 总而言之 它表示 Hive 不适用于
  • 使用 iTextSharp 从 pdf 中提取图像及其名称

    我正在使用 iTextSharp c 从目录 pdf 中提取图像及其名称 我能够从 pdf 中提取图像 但很难根据所附的屏幕截图提取其相应的图像名称并使用该名称保存文件 请找到下面的代码并让我知道您的建议 样本 PDF https docd
  • 旋转矩形并以正弦波方式移动它 - 使用graphics2D帮助

    Hi 我使用之前的 Stackoverflow 帖子编写了下面的代码 我只想将矩形旋转一定角度并使其以正弦波移动 该代码也旋转整个正弦波 我明白为什么会这样 但我不知道如何实现我的意图 请帮忙 非常感谢您抽出时间 import java a
  • 使用不同过滤器的实体框架 6 查询

    我有个问题 当我运行下面的代码时 var data context TableX Where w gt w userId 9999 w id 9999 Distinct ToList 这是生成的查询 SELECT Extent1 id AS
  • Android 自然传感器方向帮助

    我正在尝试实现 Reto Meier 推荐的保持屏幕方向不变的方法 他在 Google IO 期间演讲的幻灯片 参见 23 可以在以下位置找到 Android 专业提示 在哪里下载幻灯片和代码片段 我已单步执行代码并设置值 但屏幕方向仍然发
  • JSlider——需要建议

    我在Java中使用JSlider时遇到问题我画了一个圆A 我想在第一个圆A内放置另一个圆B 我想将第二个圆B的中心放置在与第一个圆B的中心相同的坐标处圆A 然后我想使用JSlider来增加或减少圆B的半径 问题是 当您增加或减少滑块时 圆B
  • 我如何设置此序列形式的序列(Inno Setup)

    我正在寻找一个串行脚本 我在这里找到了一个 Inno Setup 中序列号的自定义页面 但是我该如何设置序列号 因为现在所有序列号都有效 感谢您的回答 扩展我的代码previous post 如果你想将序列号与常量值进行比较 可以这样修改脚
  • 在 Kubernetes 上运行 Spark 来访问 Kerberized Hadoop 集群时,如何解决执行器上的“SIMPLE authentication is notenabled”错误?

    我正在尝试在 Kubernetes 上运行 Spark 目的是处理来自 Kerberized Hadoop 集群的数据 我的应用程序由简单的 SparkSQL 转换组成 虽然我能够在单个驱动程序 Pod 上成功运行该进程 但在尝试使用任何执
  • “魔方”算法

    作为一个实验 我试图创建一个幻方程序 检查每个可能的包含九个数字的方格 对于那些不知道的人来说 幻方是由数字 1 9 组成的 3x3 网格 其中每行 每列和对角线的总和为 15 例如 我该如何使用 Lua 表格来检查每个方块 我从下表开始
  • Word命令行参数空间问题

    我想将参数传递给 winword 以便使用 Environment GetCommandLineArgs 在我的 vsto 插件中读取它 如果参数值包含空格 我无法转义字符串 这是工作 winword exe myVar1 C folder
  • 如何结合zend框架和Codeigniter?

    如何结合zend框架和Codeigniter 我有两个应用程序 一个是 zend 另一个是 codeigniter 是否可以将这两个框架合并到一个项目中 如果是这样 如何结合这两个框架以及其文件结构是什么 感谢您的帮助 当然有可能 我曾参与
  • $ 未在 JavaScript 中定义

    Firebug 报告称 未定义 中断此错误 function 我有一个简单的 index php 页面 它执行 php include 来包含我需要的内容 内容如下
  • 列表适配器中的回调方法不起作用

    我使用了上一个问题中指导使用的回调方法 这似乎不起作用 未调用 onClick 方法 回调方法似乎是一个非常广泛的概念 我不知道如何缩小搜索范围以获得相关信息 或者如何找到我得到的代码有什么问题 列表活动 适配器已初始化 并在此处设置点击侦
  • 如何识别脚本是否在tty上运行?

    我希望我的脚本在交互式 shell 会话中以及使用重定向的 stdout 运行时 例如 通过管道传输到其他命令时 以不同的方式运行 我如何识别 Python 脚本中发生这两者中的哪一个 现有程序中此类行为的示例 grep color aut
  • 在jQuery中,如何将多个delay()方法与css()一起使用?

    我怎样才能实现以下目标 了解如果我只能使用一次延迟setTimeout this css delay css delay css EDIT The CSS values altered are non numerical jQuery de
  • QT:QSqlDatabase:未加载 QMYSQL 驱动程序 [WINDOWS]

    萨拉姆 阿莱库姆 大家好 我正在尝试创建一个 QT 界面来连接到 MYSQL 数据库 但它总是给出一个错误 QSqlDatabase QMYSQL driver not loaded QSqlDatabase available drive
  • 反转数字中的数字

    我想在 python 中反转数字中的数字 这是我的两个实现 One 将数字转换为字符串并反转其中的每个字符 number 2376674032 number s str number index len number s 1 str lis
  • 使用 karma+jasmine 测试订阅角度 2 中的位置 (this.location.subscribe)

    我正在订阅角度定位服务在我的组件中 this location subscribe ev PopStateEvent gt this lastPoppedUrl ev url 我希望能够将它与我的组件的其余部分一起测试 现在我的 compo