PRIME ng 确认服务的 Angular 单元测试

2024-03-27

首先,我是角度单元测试的新手。我想对以下从数据中删除记录的方法进行单元测试。方法是:

//Confirm Button for deletion


 confirm(name: string, id: any) {
      this.confirmationService.confirm({
          message: 'Are you sure you want to remove ' + name + ' from your list of Supporting Staff?',
          accept: () => {
             const index: number = this.data.indexOf(id);
              if (index !== -1) {
                this.data.splice(index,1);
                this.totalResults = this.data.length;
                this.updateVisibility();                
                this.alertMessage = { severity: 'success', summary: 'SUCCESSFUL REMOVAL', detail: 'You have successfully removed '+name+' from your Supporting Staff List.' };
                this.alertMessagesSrv.pushAlert(this.alertMessage);
               }   
          },
      reject: () => {       
      }
      });

  }

正如您所看到的,我正在调用 PRIME ng 的确认服务,并打开一个对话框询问用户是否要删除所选记录。 (数据是我的记录)。

这是我的单元测试:

 it('should remove a supporting staff from list', () => {
let fixture = TestBed.createComponent(SupportingStaffComponent);
let app = fixture.debugElement.componentInstance;
let dataService = fixture.debugElement.injector.get(ProvidersService);
let spy = spyOn(dataService,'getSupportingStaffList').and.callThrough(); 
fixture.detectChanges();
let confirmFunction = fixture.componentInstance.confirm(app.data[0].name,1);
let confirmService = fixture.debugElement.injector.get(ConfirmationService);
//fixture.nativeElement.querySelector('#btnYes').click();
let spyRemove = spyOn(confirmService,'accept').and.callThrough();

fixture.detectChanges();

console.log(app.data);
expect(app.data).toBeDefined();
});

因此,我调用服务来加载我的数据(dataService),然后调用我的方法来删除第一条记录。但什么也没发生。单元测试成功完成,但没有删除任何数据。

有什么想法吗?


您可以使用 jasmine fake 来覆盖确认对话框并调用接受函数,如下所示

spyOn(confirmationService, 'confirm').and.callFake((params: any) => {
      console.log(`fake calling accept`);
      params.accept();
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PRIME ng 确认服务的 Angular 单元测试 的相关文章

随机推荐

  • ASP.NET Web App 和 C# 应用程序之间的双向通信

    我需要构建一个可以双向通信的网站和应用程序 我将使用 ASP NET 构建网站 并使用 C 构建应用程序 我将自己托管该网站 它将与应用程序在同一台计算机上运行 我不知道在两者之间发送数据的最佳技术是什么 C 应用程序需要一直运行 我应该构
  • firebase多位置更新用户身份验证和数据库

    我有一个用于注册新用户的表格 其中包含电子邮件 密码 全名和电话号码 我可以用firebase auth createUserWithEmailAndPassword如果成功则创建新用户 然后我用firebase database ref
  • python 2和3中的UTF-8字符串

    以下代码适用于 Python 3 people u Nicholas Gyeney u Andr xe9 writers join people print writers print Writers format writers 并产生以
  • Gmp PHP 扩展 - MAMP PRO

    我查看了其他几个问题 例如this one https stackoverflow com questions 50435455 how to install gmp extension for php 7 2 using mamp on
  • Django 中 GROUP BY 中注释的聚合

    UPDATE 感谢发布的答案 我找到了一种更简单的方法来表述问题 原问题可以在修订历史中看到 问题 我正在尝试将 SQL 查询转换为 Django 但收到一个我不明白的错误 这是我的 Django 模型 class Title models
  • 如何使用dos批处理文件命令将日期设置为当前日期

    如何使用 dos 批处理文件命令将日期设置为当前日期 如果您需要在批处理文件中使用当前日期 则变量 date 有当前日期 echo date 23 02 2010 它使用您计算机的区域设置的格式 在我的电脑里是dd mm yyyy 自从 不
  • CMake 在 include_directories 中找不到正确的头文件/包含文件

    当我尝试编译时 我再次收到 架构 x86 64 的未定义符号 错误 我已经尝试了比这篇文章中实际记录的更多的内容 因为我已经忘记了我尝试过的所有内容 这是一个非常简单的设置should使用 CMake 很容易编译 当我对此运行 make 时
  • 如何使用 javascript 知道图像是否已加载

    我正在编写一个显示相册的网站 该页面正在加载拇指并在每张图片完全加载之前在它们上应用白色叠加层 我在本地编写了这个代码 效果很好 但是在我的服务器上上传文件并加载页面会带来一些显示错误 一些白色覆盖层不会淡出 因为 jQueryload函数
  • 如何使用命名管道在 c++ .dll 和 C# 应用程序之间发送消息?

    我正在制作一个用 C 编写的注入 dll 并且我想使用命名管道与 C 应用程序进行通信 现在 我在 C 应用程序中使用内置的 System IO Pipe net 类 并在 C 中使用常规函数 我在 C 方面没有太多经验 阅读 这是我的第一
  • C#:从 JSON 结构中提取/检索子节点

    我们如何从 C 中的 JSON 结构中提取或检索子节点值 我的应用程序正在使用 我需要检索name from city temp from list and 描述 from weather节点 我的 JSON 和类结构如下 cod 200
  • 如何在Excel工作簿之间复制和粘贴工作表?

    如果使用 VBA 打开两个 Excel 应用程序 如何将工作表从一个 Excel 应用程序 1 传输到另一个 2 问题是 程序员使用 JavaScript 当您单击将 Web 数据传输到 xl 工作簿的按钮时 它会打开一个新的 Excel
  • iOS 5 不允许将下载的数据存储在 Documents 目录中?

    我为我的客户制作了一个应用程序 将目标 iOS 保留为 4 但由于应用程序仍未提交到Apple store 我的客户正计划将其升级到iOS 5 0 为此我阅读了苹果的指导方针 https developer apple com icloud
  • symfony2 空 jsonResponse

    我的 JsonResponse 有问题 这是我的代码 repo this gt getDoctrine gt getRepository repoName users repo gt findAll return new JsonRespo
  • Django 模型:delete() 未触发

    我有一个模型 class MyModel models Model def save self print saving def delete self print deleting save 方法被触发 但 delete 没有被触发 我使
  • fxml getController() 返回 null

    我是 JavaFX 的新手 谁能帮我 这是我的代码 Stage stage new Stage FXMLLoader loader new FXMLLoader Parent root Parent loader load getClass
  • C# Blazor 错误 BL0005 - 正确设置组件属性

    我已经对此错误进行了研究 但只是不理解正确的解决方案 示例代码 直接取自供应商示例 https blazor syncfusion com documentation menu bar getting started https blazo
  • org.xml.sax.SAXParseException 文档中根元素后面的标记必须格式正确

    我知道有一些类似的线程 但它们对我没有任何帮助 我正在尝试通过 Java 创建 XML 文件 但我在这一行不断看到此错误doc db parse is 有人可以告诉我哪里错了吗 错误 Severe Fatal Error 2 2 The m
  • Matplotlib:仅将单元格颜色应用于某些列/单元格

    让我自己陷入了困境 我正在 Matplotlib 中创建一个基本表 通过 Pandas 但这不是问题 我想要完成的是创建一个表 其中第一列 将是字符串值 保持白色 但列 2 3 4 5 6 是浮动 整数 并将由自定义着色标准化颜色图 I v
  • Facebook 页面插件仅显示链接而不显示页面

    我的 facebook 页面插件只是向我显示一个链接而不是页面 我尝试将 http https 添加到 js src 但没有任何效果 我也在本地以及托管服务器上尝试过 但给了我相同的结果 div class fb page blockquo
  • PRIME ng 确认服务的 Angular 单元测试

    首先 我是角度单元测试的新手 我想对以下从数据中删除记录的方法进行单元测试 方法是 Confirm Button for deletion confirm name string id any this confirmationServic