mat Snackbar 单元测试消息为空

2024-04-27

我有一个使用的定制服务matSnackbar显示警报和自定义matSnackbar用作 SnackBar 模板的组件。 我为它编写了一个单元测试,并想测试在其中显示我的消息:

fit('should show my alert message',  () => {
    service.openSnackBarFromComponent('lia lia');
    expect(element.querySelector('.message-container span').innerText).toBe('lia lia');
  });

我在浏览器中看到它显示了我的消息"lia lia"但在测试上面的内容时.message-container span为空。我的问题是为什么它显示 null 和/或任何其他方式来测试我的消息?


根据我的评论,fixture.detectChanges应该可以解决你的问题。

至于单元测试:你一定已经猜到了,unit测试意味着测试一个单元。

一个单元就是一段代码

  • 你自己写的
  • 在给定范围(函数、类)中定义的
  • 具有依赖关系(注入、参数...)

当您测试该单元时,您需要遵循几个步骤

  • 模拟依赖关系
  • 隔离装置
  • 测试副作用

单元测试的目的是防止修改带来的副作用.

例如,您有一个组件,如果 HTTP 答案为 200,则只需将按钮着色为绿色。

单元测试的目的是确保如果答案是 200,颜色会变成绿色。

这意味着如果您没有收到 200,则颜色不应改变;如果您收到 200,则颜色应仅为绿色。

应用于您的情况,您的测试的目的是确保使用您的自定义组件调用零食。

你的目的不是测试零食的作品。小吃栏本身就是一个单元,并且您没有编写代码:小吃栏的单元测试是由 Angular Material 单元测试进行测试的,而不是由您进行测试。

In fine,您的测试没有错误:它只是另一个测试的重复,因此它是“无用的”,因为它已经被测试过。

如果继续这样测试,您将花费 3、4 倍于测试的时间,这最终不会产生任何成效。

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

mat Snackbar 单元测试消息为空 的相关文章

  • 使用 rxjs 将数据添加到 http 响应

    我有一个包含司机 ID 的旅行实体 我可以使用 RESTFull 端点获取获取行程 例如 trips 2 example response id 2 driver id 123 我可以使用端点获取驱动程序详细信息 例如 drivers 12
  • 如何跨多个文件跨越 javascript 命名空间?

    我永远忽略了javascript 几年前我开始使用 jQuery 这样我就可以过得去 但随着我开始更多地进行 TDD 我昨天决定真正深入研究 javascript 之后可能还有咖啡脚本 在我的 ASP NET Web 窗体应用程序中 我有很
  • AngularJS 不再在 Firebug 控制台中显示特定错误

    我在我的应用程序中使用 AngularJS 和 Angular Material 库 问题是 每当控制器的任何功能发生任何错误时 它都不会显示特定的错误 而是每次都会显示相同的一般错误 通过查看这些错误 您无法确定出了什么问题 这是我的控制
  • 有没有办法扩展 angular.json 中的配置?

    在构建 Angular 6 应用程序时 我需要同时指定两件事 如果是生产或开发版本 我正在使用的区域设置 In my angular json I have build configurations production fileRepla
  • 使用mockery和sinon模拟类方法

    我正在学习使用带有 sinon 的节点模块模拟进行单元测试 仅使用模拟和普通类 我就可以成功注入模拟 不过 我想注入一个 sinon 存根而不是一个普通的类 但我在这方面遇到了很多麻烦 我试图嘲笑的班级 function LdapAuth
  • Angular2 如何对自定义验证器指令进行单元测试?

    我为输入字段编写了一个非常简单的自定义验证器 import Directive from angular core import AbstractControl NG VALIDATORS from angular forms functi
  • 需要在 Visual Studio 2017 中验证 Angular4 和 Angular2

    我已将源代码从 Angularjs 2 升级到 Angularjs 4 我正在使用 Visual Studio 2017 和 ASP NET MVC Core 我现在想验证我使用的是更新版本 4 还是以前的版本 2 这是我的 package
  • Bug:VS2017 Live 单元测试 - 只有减号 - 不起作用

    TL 博士 编辑6 我缩小了范围并提供了重现问题 错误的 5 个步骤 创建 VS2017 c 控制台应用程序 Net 完整框架 将方法添加到 Program cs 并使该类公开 public class Program static voi
  • Angular2 命名路由

    我用的是Angular2Webpack 入门 https github com AngularClass angular2 webpack starter in 这个最新版本 https github com AngularClass an
  • 包括 PHPUnit 在内的麻烦

    我想开始为我的代码编写测试 因此我使用以下命令安装了最新的 PHPUnit wget http pear phpunit de get phpunit phar chmod x phpunit phar mv phpunit phar us
  • 通过 Angular 2 中的输入装饰器使用多个属性

    我有一个通过其选择器接收两个输入的组件 但这可以扩展到任意数量的输入和任何组件 因此 为了消耗组件本身的多个属性 Input 装饰器不允许我使用多个属性 因此作为解决方法 我对两个输入属性使用了两个装饰器 但我认为这不是解决这种情况的唯一方
  • 多个应用程序中的 Angular 共享资产

    我正在开发多个小型应用程序 这些应用程序将共享公共和共享模块以及资产 关于如何创建项目结构的部分已在这里回答 https stackoverflow com a 61254557 1351452 https stackoverflow co
  • 对自定义打字稿错误实例实施instanceof检查?

    打字稿有这个instanceof 检查自定义错误 https github com Microsoft TypeScript issues 13965问题 但尚不清楚我们需要做什么才能得到instanceof在职的 例如对于这个异常我们如何
  • 从 Angular 11 升级到 Angular 12 后,我的项目未使用优化参数进行编译

    我刚刚升级了环境nrwl https nrwl io 从 Angular 版本 11 到 12 带有两个 Angular 应用程序和多个库 更新后 当我尝试使用优化设置进行编译时 角度 json optimization scripts t
  • Rxjs 可观察等待直到满足某些条件

    我有以下重试逻辑来重试操作 对于单个请求来说它工作得很好 对于多个正在进行的请求 我想在重试之前等待现有的重试逻辑完成 handleError errors Observable
  • “DeploymentItem”属性是什么意思?

    假设我们有一个简短的程序 namespace ConsoleTryIt static class Program static void Main string args var sum Add 1 2 private static int
  • 如何避免从模拟对象列表返回模拟

    我正在尝试模拟 责任驱动的设计 在对象需要服务来检索其他对象的情况下 我似乎无法避免从模拟返回模拟 一个例子是检查上个月的账单是否已支付的对象 它需要一个检索账单列表的服务 所以我需要在测试中模拟 billRetrievalService
  • 将可区分的联合传递给 InlineData 属性

    我正在尝试对一个解析器进行单元测试 该解析器解析字符串并返回相应的抽象语法树 表示为可区分的联合 我认为使用 Xunit Extensions 属性会非常紧凑InlineData将所有测试用例堆叠在一起
  • 未捕获错误:无法使用 angular2-meteor 和 ng-bootstrap 解析 NgbAlert 的所有参数

    我正在使用 Angular 作为前端运行一个流星项目 我似乎无法弄清楚如何让 ng bootstrap ng bootstrap 正确导入到我的项目中 这是我的设置 Meteor 版本 1 6 Angular 版本 5 1 3 ng boo
  • Angular 2在两个组件之间传递数据

    我想在两个组件之间传递数据 但我的问题是 我有两个组件 假设一个是 主 另一个是 模态对话框 在我的主要部分中 我想打开模态对话框并从模态对话框中获取数据 而无需离开我的主要组件 我知道如何使用 Input 但我看不到在我的应用程序中使用它

随机推荐

  • 有条件地使用文件夹大小

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果stat module Attempt hosts pluto tasks stat path home ik thunderbird register folder nam
  • 无法放弃 git 中的更改

    一两周前 我拿了一些文件 这些文件是我用一个简单的程序存档的find sed tar xz gpgbash 脚本 将它们全部解压 并将它们的内容放入 git 存储库中 提交 将下一个档案内容放入存储库中 提交 冲洗并重复 以便拥有一个更好的
  • 按日期顺序排列的 T-SQL 查询组(间隙和孤岛)

    我有一个这样的示例表 CREATE TABLE Aggregate vKey INT dKey INT StartTrip DATETIME EndTrip DATETIME Distance INT 像这样的一些样本数据 INSERT I
  • 如何解决大内容的角度性能问题

    我熟悉 Angular 的摘要周期以及它如何影响长列表和大模型值的性能 我只是好奇您是否有专门针对我的情况的问题的解决方法 我正在构建一个应用程序 它可能需要也可能不需要用户输入大文本 例如错误日志textarea 但由于与 2 路数据绑定
  • R Studio:更改光标颜色

    我在 R Studio 中使用 Cobalt 编辑器主题 通过更改相应的 cache css 文件对其进行了稍微调整 背景颜色是深色的 我的选择 但文本光标 鼠标指针 也是深色的 因此很难看到 在哪里或如何将鼠标指针颜色更改为例如 cach
  • 在同一节点上匹配不同配置的模板

    我问了我的整个问题这里关于堆栈溢出 https stackoverflow com questions 64966059 nesting xsl templates and referring multiple templates to t
  • AppBarLayout 滚动时 RecyclerView fling 导致延迟

    我的布局如下
  • 在 dplyr 链中传递价值

    假设我有以下列 CurrentStatus Current NoChange NoChange NoChange NoChange Late 我想改变它 以便如果该值为 NoChange 则它使用先前的值 I tried myDF gt m
  • 通过存储过程将记录传输到目标表后,从源表中删除记录

    这是我在 user75ponic 的帮助下生成的存储过程 CREATE OR REPLACE PROCEDURE ARCHIVE DATA AS BEGIN MERGE INTO Schema2 table trg USING SELECT
  • Objective C:如何从 appdelegate 呈现模态视图控制器?

    我在我的应用程序的 appdelegate 中 如何在 didfinishlaunching 方法中添加模式视图控制器 我尝试了以下方法但没有成功 SomeViewController vc SomeViewController alloc
  • 使用 PHP SDK 在亚马逊 S3 上上传文件

    我正在尝试通过 PHP SDK 在我的亚马逊 S3 存储桶上上传文件 但是我的脚本不起作用 我有一个空白页面 没有任何错误或异常消息 编辑 在 php ini 中启用 display error 后 我有下面的错误消息 看起来 sdk 在我
  • DataGridView 自动添加新行 - 为什么?

    您好 我有一个使用 Windows 窗体的旧 C 应用程序 编写得非常糟糕 我最近不得不对应用程序进行一些广泛的更改 现在我面临着相当奇怪的问题 该应用程序最初设计为在主窗口 OnLoad 方法中加载数据 我知道这是一个糟糕的想法 后来重构
  • 我如何返回包含 c++ 中两个映射差异的 std::map ?

    我有两张地图 我需要找到差异并创建一张只有差异的新地图 不知道该怎么做 我尝试使用 set difference 但不太明白它是如何工作的 任何帮助 将不胜感激 谢谢 header file typedef std map
  • Java 文档生成器为 Xml 字符串返回 null 文档

    I have tried all possible answers https stackoverflow com questions 33098082 passing xml string as document returning nu
  • 在unity3d中通过标签查找不活动的游戏对象[重复]

    这个问题在这里已经有答案了 我有一个游戏对象 我希望在特定条件下激活它 我给了它一个独特的标签 并尝试使用GameObject FindObjectWithTag Tag name 据我所知 此方法只会找到场景中活动的游戏对象 而不是非活动
  • 有人可以解释一下 arcTo 的最后两个参数吗?

    我正在尝试绘制一个带圆角的矩形 我有一个 javascript 路径可以执行此操作 但 javascript arcTo 方法采用一个矩形 定义其椭圆形 然后采用一个参数来设置扫描 然而 在Android版本中有三个参数 矩形椭圆形 我认为
  • Asp.net 调用 C# 层调用托管 C++ 调用本机 C++

    我的项目结构如下 ASP NET呼叫C 层调用ManagedC 调用Native C 我试图避免使用互操作 所以这就是托管 C 层的原因 我编写了测试 C 层的单元测试 它工作得很好 当我尝试运行 asp net 页面时 我得到 Could
  • input[type=hidden] 和visibility="hidden" 之间的区别

    有什么区别input type hidden and visibility hidden 第一个是输入元素 第二个用于 CSS2 中的样式 visibility hidden 可见性属性指定元素是否可见 输入 类型 隐藏 http www
  • R:如何获取时间序列数据中日期时间列的最大值

    我正在研究时间序列数据 我有 2 个日期时间列和 1 个会计周列 我给出了一个例子 我遇到如下情况 我需要获取 EditDate 的最大值 EditDate lt c 2015 04 01 11 40 13 2015 04 03 02 54
  • mat Snackbar 单元测试消息为空

    我有一个使用的定制服务matSnackbar显示警报和自定义matSnackbar用作 SnackBar 模板的组件 我为它编写了一个单元测试 并想测试在其中显示我的消息 fit should show my alert message g