如何在角度应用程序中对 router.navigate 进行单元测试 [重复]

2023-12-27

我正在为角度应用程序运行单元测试,我想对导航在角度应用程序中是否正常工作进行单元测试。

 if (this.customer.length == 0) {
     this.router.navigate(['/nocustomer']);
 } 

以及这个的单元测试

 it(`should navigate to nocustomer`,()=>{
   component.customers.length=0;
   //what must be written here to check this
})

有时,我动态地放置其他参数来调用导航。因此,只期望我在测试中使用的路径:

...
test('Navigate to /nextPage.', inject([Router], (mockRouter: Router) => {

  const spy = spyOn(mockRouter, 'navigate').and.stub();

  component.goToNextPageMethod();

  expect(spy.calls.first().args[0]).toContain('/nextPage');

}));
...

参考:https://semaphoreci.com/community/tutorials/testing-routes-in-angular-2 https://semaphoreci.com/community/tutorials/testing-routes-in-angular-2

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

如何在角度应用程序中对 router.navigate 进行单元测试 [重复] 的相关文章

随机推荐

  • 为 GUID 值专门化模板

    这是后续为什么常量 POD 对象中的字段本身不是常量 https stackoverflow com questions 15392553 why arent fields from constant pod object constant
  • g++ 不生成任何文件或给出任何输出

    我刚刚开始使用 g 从网站下载了最新版本 并且制作了一个简单的 HelloWorld 程序 include
  • 如何合并两个sql查询?

    我有一个库存表 我想创建一个报告来显示订购商品的频率 库存 表 item id pcs operation apples 100 order oranges 50 order apples 100 delivery pears 100 or
  • Haskell中的floor和truncate有区别吗

    两者之间的功能是否存在差异floor and truncate在哈斯克尔 它们似乎执行相同的功能并且具有相同的类型签名 truncate Integral b RealFrac a gt a gt b floor Integral b Re
  • vuetify v-data-table 样式

    默认情况下 在 v data table 的每个非最后子行之间打印一行 我想修改 css 来更改该行 例如去掉它 最初 在开发人员控制台中 有关 border bottom 的 css 如下所示 theme light v table tb
  • 如何更改wpf TabControl中TabItem的顺序

    我需要更改 TabItem 的顺序 我尝试过删除 插入 但不起作用 void UserControl Loaded object sender RoutedEventArgs e if condition TabControl Items
  • mmap 是否与所有进程共享内存?

    当我这样做时 myProgram h myProgram c struct PipeShm all my fields more struct PipeShm myPipe initialization for all fields str
  • 检测何时创建新的托管线程

    有谁知道是否可以检测在托管环境中何时创建新线程 我想要一个应用程序中所有线程的列表 每个线程的 ID 和名称 我在 Visual Studio 中使用并发可视化工具 它仅显示线程 ID 而不是线程名称 如果您有 20 多个没有名称的线程 则
  • Auth::validate 返回 false Laravel 8

    好吧 我正在尝试使用 Auth validate credenciais 通过 Laravel 进行身份验证它不起作用 public function LoginData Request request request gt validat
  • :force => true 在模式文件中意味着什么

    如果你查看 db schema rb 你会看到类似的内容 create table users force gt true do t 什么是 force gt true mean 来自Rails 文档 http api rubyonrail
  • 计算用箭头和鼠标移动的对象

    我正在使用 openGL 做一个 Maya 模拟器应用程序 一切进展顺利 只有一个麻烦 我无法计算出通过鼠标移动物体的 100 准确度 我使用 3D 坐标中的箭头和屏幕坐标中的箭头的缩放 并将其乘以一些缩放来计算屏幕坐标的 x 和 y 方向
  • TensorFlow 嵌入查找

    我正在尝试学习如何使用 TensorFlow 构建用于语音识别的 RNN 首先 我想尝试 TensorFlow 页面上提供的一些示例模型TF RNN https www tensorflow org versions master tuto
  • 如何为 Chrome 上的每个选项卡获取不同的徽章值?

    我正在尝试做像 adblock 那样的事情 Adblock 计算 广告 的数量并更新徽章值 目前 我尝试对 背景页面 执行某些操作 但它们仅运行一次 并且所有选项卡的徽章值都相同 我无法使用浏览器操作 popup html 因为它仅在单击后
  • 在与其他线串的交叉点处匀称分割线串

    我有一组与其他 LineString 相交的 LineString 我想在这些交叉点将 LineString 分割成单独的线段 我有一个解决方案 但我认为这不是最好的方法 假设我们正在处理一个 LineString gt gt gt imp
  • 基于滚动位置的 div 位置

    我希望我的徽标根据网站上的滚动位置垂直上下滚动 就像默认滚动条指示您在网站上的位置一样 我希望我的徽标也能这样做 当您位于网站页面的顶部时 徽标位于顶部 而当您位于底部时 徽标将位于页面底部的垂直栏中 位于网页左侧 我不知道如何解决这个问题
  • Curl_exec 在 php 中返回 null

    我在使用curl操作获取数据时遇到问题 在这里我隐藏了令牌 如果我仅在浏览器中使用网址 那么它会返回数据 但这里它为空
  • 根据条件收集变量 (R)

    我正在阅读 R for Data Science 一书 并希望根据条件 类似于选择 从数据集中 收集 多个变量 具体来说 我想只选择连续变量而不是分类变量 如何在不手动指定变量的情况下完成此任务 下面不行 library tidyverse
  • node.js 将 http 响应写入流

    我正在通过 http 获取一些二进制数据 我的代码如下所示 var writeStream fs createWriteStream fileName request url function err res res socket pipe
  • Gecko(或任何其他布局引擎)如何呈现文档/页面?

    浏览 Gecko 的文档来了解它如何呈现网页有点困难 我正在对主要浏览器上的项目进行一些性能分析 以了解如何提高响应时间 我知道那里有优化技术 但我并不真正理解它们的基础 我相信如果我知道浏览器引擎如何做它们的事情 这个问题就会得到解决 我
  • 如何在角度应用程序中对 router.navigate 进行单元测试 [重复]

    这个问题在这里已经有答案了 我正在为角度应用程序运行单元测试 我想对导航在角度应用程序中是否正常工作进行单元测试 if this customer length 0 this router navigate nocustomer 以及这个的