npm 包 ng2-test-selectors 使用教程

什么是 ng2-test-selectors

ng2-test-selectors 是一个 npm 包,它提供了一种简单的方式来定位 Angular2+ 应用程序中的测试选取器,以便单元测试中的元素定位。

ng2-test-selectors 可以在 Angular2+ 应用程序中的测试中使用 CSS 选择器,以便利用 Angular2+ 的结构。

安装

在你的 Angular2+ 项目中运行以下命令安装 ng2-test-selectors:

--- ------- ------------------ ----------

使用

声明 Ng2TestSelectorsService

您需要在测试文件的 beforeEach 函数中创建一个 Ng2TestSelectorsService 实例。

您可以使用 TestBed 来创建组件,当创建组件时,NgModule 会有所绑定,其中包括 providers(服务),这个时候你可以将 Ng2TestSelectorsService 注入到之前创建的 TestBed 中,以便用于测试。

------------- ----------- -- -- -
  --- --------
  --- -------- ------------------------

  ------------------- -- -
    --------------------------------
      ---------- -
        -----------------------
      --
      ------------- - ------------ -
    --
    ---------------------
  ----

  ------------- -- -
    ------- - --------------------------------------
    ------- - -------------------------------------
  ---

  ---------- ------ --- ----- -------- -- -
    ----- --- - ---------------------------------------
    -------------------------
  ----

  ---------- ----- --- -- --- --------- -- -- -
    ----- --------- - ----------------------------------- -----
    ---------------------------------------------------------- -- -- -------
  ---
---

使用 Ng2TestSelectorsService

ng2-test-selectors 提供了两个主要的函数:selectRootElement(selector)selectElement(selector)

两个函数都返回 Angular2+ 元素(DebugElement)。

  1. selectRootElement(selector): 该函数返回与传入的 selector 匹配的第一个 DebugElement 实例。
----- --------- - ----------------------------------- -----
  1. selectElement(selector, parentElement?): 此功能允许您从给定的父元素(调用该元素的 queryAll 子元素)中选择一个元素。
----- ----------- - -------------------------------------- ---------

示例

假设我们有以下组件:

-----------
  ------
    ------ ----------- ---------------- --
    ------ --------------- ---------------- --
    ------- ------------- -----------------------------------
  -------
------------

我们可以用以下方式选择它们:

----- --------- - ------------------------------------ -------
----- ------------- - ---------------------------------- -----------
----- ------------- - ---------------------------------- -----------
----- ----------- - -------------------------------------- -----------

现在,我们可以编写以下测试:

---------- ---- -------- --- -------- ----- ------ --- ------ ---- ---- -------- -- --- ---- ------ ------------ -- -
  ----- ------ - --------------------
  ------------- -----------------

  ----- --------- - ------------------------------------ -------
  ----- ------------- - ---------------------------------- -----------
  ----- ------------- - ---------------------------------- -----------
  ----- ----------- - -------------------------------------- -----------

  -------

  --------------------------------- - -----------
  --------------------------------- - -----------

  ----------------------------------

  -----------------------------------------------------------
----

总结

ng2-test-selectors 可以帮助您准确地选择任何 Angular2+ 应用程序的 DOM 元素以在单元测试中进行测试。它可以使用 CSS 选择器来查询嵌套选择器,因此即使应用程序结构发生变化,您的测试也不会受到影响。

通过优化选择器的使用,您可以更好地组织和编写测试,同时减少由于选择器更改而导致的测试故障的数量。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600560a581e8991b448dee3f


猜你喜欢

  • npm 包 @ng2-dynamic-forms/ui-ng-bootstrap 使用教程

    前言 在前端开发中,表单是不可或缺的一部分。在 Angular 2+ 开发中,@ng2-dynamic-forms 是一个非常优秀的动态表单库,它可以让我们轻松地生成各种类型的表单控件,然而配合 ng...

    3 年前
  • npm 包 xf.js 使用教程

    简介 xf.js 是一个轻量的 JavaScript 函数库,适用于前端开发。它的主要特点是代码少、易于使用、高效,并且支持链式调用。在本文中,我们将介绍 xf.js 的主要功能和用法,并带着大家一步...

    3 年前
  • npm 包 create-vuez 使用教程

    简介 在前端开发过程中,我们经常会使用到 Vue.js 这样的 JavaScript 框架来快速构建用户界面。而为了让开发更加高效快捷,我们可以使用 npm 包来加速我们的开发流程。

    3 年前
  • npm 包 jumpfm-filter 使用教程

    Jumpfm-filter 是常用于前端开发的一个 npm 包,它提供了一个简单的、高效的文件过滤器,可以用于快速找出指定目录下满足特定模式的文件。本篇文章将为你提供 jumpfm-filter 的使...

    3 年前
  • npm 包 videojs-panorama-ypp 使用教程

    在前端开发中,视频播放经常会使用到 video.js 这个播放器库。video.js 提供了很多插件来丰富其功能,其中 videojs-panorama-ypp 是一个用于全景视频播放的插件。

    3 年前
  • npm 包 Botsfactory 使用教程

    在前端开发中,我们经常需要写一些机器人脚本来自动化一些繁琐的工作。为了方便开发,我们可以使用 npm 包 Botsfactory。本文将详细介绍 Botsfactory 如何使用以及其深度和学习指导。

    3 年前
  • npm 包 set-page 使用教程

    在开发 Web 应用程序时,我们都希望页面能够更加灵活地展示和交互,更加符合我们的创意和需求。而 set-page 正是一个可以帮助我们快速搭建灵活的 Web 页面的 npm 包。

    3 年前
  • npm 包 kreation 使用教程

    在前端开发中,使用 npm 包是非常常见的操作,可以为我们节省很多时间和精力,让我们能够更快速的开发应用程序。而 kreation 就是一款非常优秀的 npm 包,可以帮助我们更快速的生成项目基础代码...

    3 年前
  • npm 包 @chan4lk/acronym 使用教程

    前言 随着国内前端技术迅速发展,npm 成为了前端工程师必不可少的包管理工具。其中,@chan4lk/acronym 是一个用于生成首字母缩写的 npm 包。本文将对该包进行详细介绍和使用教程,帮助读...

    3 年前
  • npm包react-redux-epic-16使用教程

    React-Redux-Epic-16是一个运行在Redux中的异步副作用管理程序,它使用react-router和react-router-redux来处理导航和路由。

    3 年前
  • npm 包 reclass-doc 使用教程

    前言 在现代 Web 开发中,前端技术已经变得日益复杂和多变。为了提高代码的可维护性和易读性,Web 开发者需要使用一些工具来管理代码的结构和逻辑。reclass-doc 就是一款用来生成 JavaS...

    3 年前
  • npm 包 regex-fun 使用教程

    前言 在前端开发中,我们常常需要匹配字符串中的某些模式。JavaScript 提供了内置的正则表达式(Regular Expression)对象,可以对字符串进行模式匹配。

    3 年前
  • npm 包 snabbdom-material-components 使用教程

    前言 在前端开发中,UI 组件库是非常重要的一部分。好的组件库可以让开发者节省大量时间,提高开发效率和代码质量。snabbdom-material-components 是一个基于 snabbdom ...

    3 年前
  • npm 包 @mathieumg/draft-js 使用教程

    前言 在前端开发中,处理富文本是一个必要的功能。而 Draft.js 则是一个流行的富文本编辑器。针对 Draft.js,@mathieumg/draft-js 也是一个很好的补充,它为 Draft....

    3 年前
  • npm 包 fixed-ceil 使用教程

    在前端开发中,我们常常会涉及到数值计算、数据处理等问题。而在处理浮点数时,由于计算机内存的限制,精度很容易出现问题。而 fixed-ceil 是一个功能强大的 npm 包,可以帮助我们轻松解决这些问题...

    3 年前
  • npm 包 @pru-rt/spel2js 使用教程

    前言 在前端开发中,我们常常需要处理各种数据。有时候,我们需要根据一定的规则来对数据进行处理和筛选。这时候,就需要使用一种类似于 SQL 的查询语言来进行筛选,这就是我们今天要介绍的 @pru-rt/...

    3 年前
  • npm 包 raspi-onewire 使用教程

    在树莓派上使用单总线(OneWire)总线访问温度计或其他基本设备已经成为前端工程师的主流操作之一。 raspi-onewire 是一个非常便捷的 npm 包,可以帮助我们更好地控制 OneWire ...

    3 年前
  • npm 包 tablefy 使用教程

    简介 tablefy 是一个基于 Node.js 的 npm 包,它能够将任意数组转换为美观易读的表格形式,并且支持多种输出格式。 在前端开发中,我们经常需要将多个数据组合成表格形式,以进行数据展示或...

    3 年前
  • npm 包 @neoprospecta/angular-datetimepicker 使用教程

    在前端开发中,日期时间选择器是一个常见的功能组件。 @neoprospecta/angular-datetimepicker 是一个强大的日期时间选择器 npm 包,它提供了丰富的特性和定制化选项,可...

    3 年前
  • npm 包 elm-view-engine 使用教程

    简介 Elm View Engine 是一种前端视图模板引擎。它可以帮助开发人员更轻松地创建和维护复杂的用户界面。 Elm View Engine 包含了一组漂亮的 UI 组件和一些强大的功能,如数据...

    3 年前

相关推荐

    暂无文章