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 单元测试消息为空 的相关文章

随机推荐

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

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果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