npm 包 angular2-test-provider 使用教程

在 Angular2 的单元测试过程中,我们通常会需要使用 provider 来 Mock 掉某些依赖的服务或组件。然而,手动创建这些 provider 通常显得十分麻烦和繁琐。为了解决这一问题,开发者们推出了 angular2-test-provider 这个 npm 包,使得我们可以更加方便地进行单元测试。

安装

使用 npm 进行安装:

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

使用方式

在我们的单元测试代码中,我们可以通过下面的方式来使用 Mock 外部服务的 provider:

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

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

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

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

在上面的代码中,我们调用了 FakeHttpService.create() 方法来创建了一个 Mock 的 Http 服务,并将其注入到了我们的测试组件中。这样一来,在我们运行测试用例时,就可以轻松地 Mock 外部服务的返回结果了。

方法调用 Mock

如果我们需要 Mock 掉某个服务方法的返回结果,我们可以调用 FakeHttpService.when() 方法来指定服务的某个方法名,以及服务结束时需要返回的结果。

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

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

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

属性调用 Mock

除了方法调用之外,我们还可以通过 FakeHttpService.when() 方法来 Mock 掉服务的属性的值。以下代码展示了如何 Mock 掉 HttpModule 中的 XHRBackend_browserXHR 属性:

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

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

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

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

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

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

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

在上述代码中,我们调用了 FakeHttpService.when() 方法,指定了服务名以及需要 Mock 的属性名,然后返回了一个 Mock 对象。随后,我们使用 spyOn 方法来监控该属性被调用时的情况。

总结

通过了解如何使用 angular2-test-provider 包,我们可以更加方便地进行 Angular2 单元测试。通过 Mock 掉服务,我们可以更加专注于测试组件本身的逻辑,从而提高代码的质量和测试的效率。

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


猜你喜欢

  • npm包 hyperterm-material-bjorge 使用教程

    简介 在Web开发中,前端工程师通常需要通过命令行工具执行一些操作,而HyperTerm是一个用于命令行终端的现代化工具。HyperTerm拥有自定义主题的能力,而 hyperterm-materia...

    3 年前
  • npm 包 insomnia-qingstor 使用教程

    在前端开发中,接口调试工具是必不可少的一部分。而 insomnia-qingstor 是一款非常实用的接口调试工具,它基于 Insomnia 实现,可以方便地调用 QingStor 对象存储服务的 A...

    3 年前
  • npm 包 bitcore-build-hush 使用教程

    前言 在前端开发中,我们经常需要使用一些第三方库或框架来提高代码质量、增强开发效率。而 npm 就是一个常见的包管理工具,它能够轻松地管理项目依赖并提供依赖库的下载、更新、安装、删除等功能。

    3 年前
  • npm 包 Facebook Explorer 使用教程

    简介 Facebook Explorer 是一个基于 React 的 npm 包,它可以帮助我们快速构建出一个类似于 Facebook 的社交网站。本文将详细介绍 Facebook Explorer ...

    3 年前
  • npm 包 react-adain-tree 使用教程

    前言 在前端开发中,树形结构是非常常见的一种数据结构。ReactAdainTree 是一个基于 React 的前端组件库,主要用于实现树形数据的展示与操作,同时可高度定制,方便开发人员根据自己的需求进...

    3 年前
  • npm包scrollbalance的使用教程

    简介 scrollbalance是一款基于npm的滚动监听插件。它主要用于滚动监听并触发回调函数。该插件使用简单且体积较小,可以轻松地在前端项目中实现滚动监听。 安装 首先,在终端中进入您的项目目录并...

    3 年前
  • npm 包 search-light 使用教程

    在前端开发中,我们经常需要使用各种各样的第三方包来提高项目的效率与质量。而 npm 就是一个功能强大的包管理器,可以帮助我们轻松地管理这些包。 在 npm 中,有一个名为 search-light 的...

    3 年前
  • npm 包 babel-plugin-styled-components-require 使用教程

    简介 babel-plugin-styled-components-require 是一个可通过 babel 插件加载到项目中的 npm 包,其作用是优化 styled-components 在使用过...

    3 年前
  • npm 包 prom-query 使用教程

    在现代的软件开发生态系统中,Node.js 已成为前端开发的重要组成部分,而 NPM(Node.js 包管理器)则是 Node.js 上最广泛使用的包管理器之一。npm 包 prom-query 可以...

    3 年前
  • npm 包 iterables-js 使用教程

    前言 在前端开发中,常常需要处理数据集合,例如数组或者字典。ES6 提供了 iterable 和 iterator 接口,方便操作集合数据。但是在实际工作中,我们常常需要对数据进行更加复杂的操作,例如...

    3 年前
  • npm 包 react-native-color-theme 使用教程

    在前端开发中,使用合适的颜色主题可以显著提高用户体验和页面质量。而在 React Native 开发中,我们可以通过 npm 包 react-native-color-theme 来方便地创建和管理颜...

    3 年前
  • npm 包 @belatrix/menu 使用教程

    在前端开发中,我们经常会需要使用菜单组件来构建 Web 应用的导航菜单。而 @belatrix/menu 是一个可以方便地创建菜单组件的 npm 包,在本文中,我们将介绍如何使用该组件来创建菜单。

    3 年前
  • npm包ua-parser-js-amplitude使用教程

    介绍 ua-parser-js-amplitude 是一个 JavaScript 库,它可以解析用户代理字符串(User Agent String)。用户代理字符串是由浏览器或客户端产品发送到服务器上...

    3 年前
  • npm 包 dollygrip 使用教程

    简介 dollygrip 是一个基于 lodash 的 JavaScript 工具库,它的重点是面向对象编程风格,可以更加直观地描述业务逻辑,减少开发难度和出错率。

    3 年前
  • npm 包 arcgis-jupyter-widgets 使用教程

    在前端开发中,npm 包是一个非常重要的工具。arcgis-jupyter-widgets 是一个基于 ArcGIS API for JavaScript 的 Jupyter Notebook 插件,...

    3 年前
  • npm 包 hmp-uppercase 使用教程

    前言 在前端开发过程中,我们经常需要对字符串进行大小写转换的操作。而其中一种常见的转换是将字符串转换为全大写或全小写,这个过程是比较繁琐的。为了解决这个问题,我们可以使用一个 npm 包,也就是 hm...

    3 年前
  • npm 包 @danywits/randomcolor 使用教程

    简介 随机颜色是前端开发中常用的一个功能,比如在给元素设置背景颜色时使用。但是自己写随机颜色函数并不方便,因为需要考虑边界情况、去重颜色等问题。@danywits/randomcolor 就是一个可以...

    3 年前
  • npm 包 linh-capitalize 使用教程

    在前端开发过程中,我们常常需要对字符串进行处理,其中一个常见的操作就是将字符串首字母大写。虽然 JavaScript 提供了 toUpperCase() 方法,但它只能将整个字符串转为大写,而不能只转...

    3 年前
  • npm 包:br.com.phonegap.plugin.backgroundservicenotification 使用教程

    简介 本文介绍 npm 包 br.com.phonegap.plugin.backgroundservicenotification 的使用教程。该插件主要用于在后台模式下显示通知。

    3 年前
  • npm 包 react-native-lazyload-components 使用教程

    React Native 是当前主流的移动端跨平台开发框架之一,其支持的第三方组件库丰富多彩,但是对于大数据量场景下的图片加载问题仍然没有很好的解决方案。为了解决这个问题,开发者需要使用到一些专门的组...

    3 年前

相关推荐

    暂无文章