npm 包 babel-plugin-rewire-exports 使用教程

什么是 babel-plugin-rewire-exports

babel-plugin-rewire-exports 是一个 Babel 插件,它提供了一种新的方式来测试 JavaScript 模块。这个插件允许你使用类似于 “单元测试重写” 或 “基于依赖注入的测试模块” 所提供的功能,去测试有依赖关系的模块(比如 ES6 模块),而无需每次测试的时候都要重新启动、重建应用并重新调整模块的环境。

babel-plugin-rewire-exports 的功能

该插件提供了三个新的语法:

  1. $stub:通过这个语法,你可以使用任意的值来替换对应模块或导出值。

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

    在你的测试代码中,你可以用下面的方式改变该导出值:

    ------ ----- ---- ------------
    
    --------------------------------- ----
    -- --
    ------------------------------------ ----
    
    ------------------- ----
  2. $mock:通过这个语法,你可以模拟任意导出值。

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

    在你的测试代码中,你可以用下面的方式改变该导出值:

    ------ ---- ---- ------------
    
    -------------------------------- ---------- - ------ --- --
    -- --
    ----------------------------------- ---------- - ------ --- --
    
    -------------------- ----
  3. $reset:这个语法允许你重置所有导出值。

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

    在你的测试代码中,你可以用下面的方式重置所有导出值:

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

安装 babel-plugin-rewire-exports

  1. 在命令行中安装 babel-plugin-rewire-exports:

    --- ------- ---------- ---------------------------
  2. 在你的 .babelrc 或 babel-loader 配置文件中加入该插件:

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

示例代码

myModule.js

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

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

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

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

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

myModule.test.js

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

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

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

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

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

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

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

结论

我们已经介绍了 babel-plugin-rewire-exports 的一些介绍,以及如何使用它测试 JavaScript 模块。根据上述示例代码和教程,你可以看到这个插件是如何简单易用,和它的学习以及指导意义。

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


猜你喜欢

  • npm 包 @pixi/mesh 使用教程

    简介 PixiJS 是一个基于 HTML5 Canvas 技术的 JavaScript 游戏引擎,其拥有一个庞大的开源社区,提供了众多功能强大的插件和工具包。在这些插件中,@pixi/mesh 是一款...

    5 年前
  • npm 包 vue-template-es2015-compiler 使用教程

    在开发 Vue.js 应用程序时,我们通常使用 vue-template-compiler 来将 Vue.js 单文件组件(.vue)编译为 Javascript 渲染函数。

    5 年前
  • npm 包 grunt-html2js 使用教程

    前言 在前端开发中,经常会遇到需要将一些 HTML 模板转换为 JavaScript 文件的情况,如 angularJS 中的 $templateCache。手动转换会很麻烦,而 npm 包 grun...

    5 年前
  • npm 包 @pixi/math 使用教程

    介绍 @pixi/math 是一个能够快速进行数学计算的 npm 包。它提供了许多与数学相关的函数和工具,帮助我们更轻松地进行开发。@pixi/math 是由 PIXI.JS 团队维护的一个子项目,它...

    5 年前
  • npm 包 @sweetalert/with-react 使用教程

    简介 @sweetalert/with-react 是一款用于 React 应用中的弹窗组件,基于 SweetAlert2 和 React 实现,具有丰富的配置项和定制化能力,能够提供更好的用户体验。

    5 年前
  • npm 包 @pixi/loaders 使用教程

    在前端开发中,经常需要使用到加载图片、音频等资源的功能。而 @pixi/loaders 是一个强大的 npm 包,它提供了方便易用的 API,可以帮助我们更好地加载和管理资源。

    5 年前
  • npm 包 random-iterate 使用教程

    random-iterate 是一个处理随机数的 npm 包,可以在前端开发中帮助我们处理随机数相关的操作。本文将详细介绍如何使用 random-iterate 包及其常用 API。

    5 年前
  • npm 包 feature 使用教程

    前言 npm 是一个用于管理 Node.js 依赖项的包管理器。它不仅可以帮助我们方便地安装和管理 Node.js 库,还能够提供一些方便实用的功能,例如发布和分享自己的 packages。

    5 年前
  • npm 包 antd-theme-generator 使用教程

    前言:antd-theme-generator 是一个基于 Ant Design 的主题生成器,可以生成与 Ant Design 主题一致的样式文件,极大的提高了 Ant Design 主题定制的便捷...

    5 年前
  • npm 包 @pixi/interaction 使用教程

    什么是 @pixi/interaction @pixi/interaction 是一个 pixijs 库的插件,为用户提供丰富的交互能力,例如鼠标悬停、单击、双击、滚动等。

    5 年前
  • npm 包 grunt-ddescribe-iit 使用教程

    随着前端开发变得更加复杂和高效,构建工具和辅助工具变得越来越重要。其中,Grunt 是一款常用的 JavaScript 任务执行器,可以自动化完成诸如压缩、合并、检查代码等繁琐的工作。

    5 年前
  • NPM 包 Vue-Loader 使用教程

    Vue-Loader 是一个开源的 NPM 包,它是 Vue.js 模板编译器的核心。Vue.js 模板编译器是将 Vue.js 模板转化成纯 JavaScript 渲染函数的核心组件,Vue.js ...

    5 年前
  • npm 包 grunt-step 使用教程

    在前端开发中,自动化构建工具是必不可少的,而 grunt 是其中比较常用的一种工具。为了提高 grunt 的灵活性和可扩展性,社区中涌现了很多第三方的 grunt 插件。

    5 年前
  • npm 包 @pixi/graphics 使用教程

    简介 @pixi/graphics 是一个开源的 npm 包,用于在 Pixi.js 库中创建 2D 图形并进行交互。通过这个包,可以创建复杂的图形和动态的效果,并对其进行事件监听和交互响应,从而实现...

    5 年前
  • npm 包 css-to-react-native 使用教程

    CSS-to-react-native 是一个 npm 包,它可以将 CSS 样式转换为 React Native 样式。这非常适合在 React Native 应用程序中使用原型设计工具(例如 Sk...

    5 年前
  • npm 包 jugglingdb-redis 使用教程

    jugglingdb-redis 是一个基于 Node.js 的 Redis 数据库适配器,用于基于 jugglingdb 的 ORM 映射模型和 Redis 数据库的交互。

    5 年前
  • npm 包@pixi/filter-noise 使用教程

    介绍 @pixi/filter-noise 是一个基于 Pixi.js 的噪声滤镜,可用于前端图像处理的实现,支持多种类型的噪声效果,包括白噪声、灰度噪声、红噪声等等。

    5 年前
  • npm 包 grunt-jekyll 使用教程

    在前端开发中,我们经常需要使用许多工具和框架来提高我们的工作效率和代码质量。而其中一个非常有用的工具就是 grunt-jekyll。本文将会对此 npm 包进行介绍,包括其基本使用教程和一些实用的示例...

    5 年前
  • npm 包 videojs-languages 使用教程

    videojs-languages 是一个 npm 包,提供了 video.js 播放器的多语言支持。如果您正在开发多语言的视频播放器,那么 videojs-languages 包是您的不二选择。

    5 年前
  • NPM 包 @emotion/unitless 使用教程

    @emotion/unitless 是 Emotion 库中的一个小工具包,用于将 CSS 单位转换为无单位值,在开发 React 前端应用中非常实用。这个包在进行一些类似自适应的响应式设计时能够提供...

    5 年前

相关推荐

    暂无文章