npm 包 proxyquire-stub-lambda-class 使用教程

proxyquire-stub-lambda-class 是一个 Node.js 的模块,它提供了一个方便的方式在测试 AWS Lambda 代码时,将其相互独立地测试。它可以帮助你:

  • 将 Lambda 函数和其所需的依赖分离开来,从而使测试更简单
  • 在测试中以更直白的方式拟造事件和 Lambda 上下文

安装

可以使用 npm 安装 proxyquire-stub-lambda-class:

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

安装完成后,就可以在测试代码中引入它了。

使用

proxyquire-stub-lambda-class 通过使用 Frisby([frisbyjs.com](http://frisbyjs.com/))风格创建测试。Frisby 是一个流行的 Node.js 测试框架,它帮助开发人员编写 RESTful API 测试,成功将其测试变得容易。proxyquire-stub-lambda-class 借鉴了 Frisby 的语法和哲学,使测试 Lambda 函数变得容易。

引入库,并通过类继承的方式创造测试:

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

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

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

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

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

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

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

在上面的代码中,我们使用 proxyquire-stub-lambda-class 导入库,并创建了一个类 TestLambdaFunction,它是从 proxyquire-stub-lambda-class 继承而来的。

TestLambdaFunction 中有两个异步方法,testSuccesstestFailtestSuccess 方法用于测试无错误的执行情况,testFail 用于测试错误的执行情况。

每个方法都包含一个 event 参数,它是一个 JSON 对象,表示上下文对象。测试使用 expectSuccessexpectFailure 方法。

expectSuccess 方法需要 event 和一个回调函数,用于在成功时执行代码。这里我们将 response 中的 statusCode 比较是否等于 200。expectFailure 方法同样需要 event 和一个回调函数,但是在错误发生时执行。

使用 invokeLambdaFunction 方法来执行 Lambda 函数。

示例

下面提供一个示例 Lambda 函数,用于演示如何测试 AWS Lambda 函数:

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

您可以将上面的 Lambda 函数拷贝到 lambda.js 文件中。接下来,创建测试脚本。需要执行以下步骤:

  1. 安装 proxyquire-stub-lambda-class

    --- ------- ---------------------------- ----------
  2. 创建 test.js 文件,并在该文件中创建 TestLambdaFunction 类:

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

    在上述示例中,我们实现了两个测试方法:testSuccesstestFail。第一个方法测试正常的执行情况,第二个测试待处理错误的情况。

  3. 执行测试:

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

    这里创建一个 test 对象,完整的构造函数为 TestLambdaFunction(cwd, handler)。第一个参数表示当前工作目录,第二个参数为要测试的处理程序的引用。在这种情况下,我们想测试的是 lambda.js 文件中的 handler 函数。

执行测试 npm run test,你可以看到以下输出:

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

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

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

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

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

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

总结

proxyquire-stub-lambda-class 简化了 AWS Lambda 函数的测试,或是使用它来测试你的 serverless 或 api 端点的代码。

借助 Frisby 风格的 API,使用 proxyquire-stub-lambda-class 编写测试非常容易。

参考链接

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


猜你喜欢

  • npm 包 swarmcity_installer 使用教程

    在前端开发中,管理依赖是一个非常重要的工作。Npm 是一个流行的 JavaScript 包管理器,它使得管理依赖包变得更加简单和高效。在本篇文章中,我们将介绍 npm 包 swarmcity_inst...

    3 年前
  • npm 包 rbinarysearch 使用教程

    什么是 rbinarysearch? rbinarysearch 是一个用于 JavaScript 的 npm 包,它提供了二分查找算法的实现。二分查找算法是一种高效的查找算法,它能够在一个有序数组中...

    3 年前
  • npm包bancor-api-node的使用教程

    介绍 bancor-api-node是一个npm包,它提供了一组用于查询Bancor智能合约的API功能。Bancor是一种去中心化的交易协议,它在以太坊上实现了自动市场制造商(AMM),让用户可以进...

    3 年前
  • npm 包 blessed-vue 使用教程

    介绍 在 Web 开发中,我们常常需要根据后端返回的数据动态生成页面。blessed-vue 是一个基于 Vue.js 的轻量级命令行界面库,能够在命令行中渲染复杂的 UI 组件和布局,支持键盘事件和...

    3 年前
  • npm 包 cron-store-core 使用教程

    前言 在前端开发的过程中,我们经常需要处理定时任务,比如每分钟更新一次数据。为了实现这个功能,我们可以使用一个叫做 cron 的定时器,但是每次都手动写配置文件比较麻烦,需要一些工具来帮助我们简化这个...

    3 年前
  • npm 包 bcoin-primitives 使用教程

    在前端开发领域中,我们有许多 npm 依赖包可用于处理不同的任务。其中一个非常有用的 npm 包是 bcoin-primitives,它提供了一组常见的比特币原语,例如交易输入输出、脚本等。

    3 年前
  • npm 包 eslint-config-redmart 使用教程

    如果你是一名前端开发人员,一定知道 ESLint 这个工具。它可以帮助我们在开发过程中检查代码中的语法和代码风格错误,提高代码的质量和可读性。而本篇文章所要介绍的是 ESLint 的一个配置包:esl...

    3 年前
  • npm 包 Fetch-This 使用教程

    在前端开发过程中,我们经常需要与后端 API 进行数据交互。而 fetch 方法可以实现与后端 API 数据交换,具体使用可以参阅 MDN Web Docs - Fetch API。

    3 年前
  • npm包 groupcenter-dropdown-paises-frontend 使用教程

    简介 groupcenter-dropdown-paises-frontend是一个用于前端开发的npm包。它提供了一个下拉选择框,用于选择国家和地区。本文将详细介绍该npm包的使用方法,并给出一些示...

    3 年前
  • NPM 包 React-Wiz 使用教程

    React-Wiz 是一个基于 React 的表单向导组件,在实现多步骤的表单时非常有用,它可以让用户轻松地跨步骤保存数据,避免了所有的表单数据都放在一个页面上的困境,提高了用户体验。

    3 年前
  • npm 包 running-in-place 使用教程

    在前端开发中,我们经常需要使用一些工具和库来辅助我们的开发工作。npm 是一个非常流行的包管理工具,它提供了大量的开源包供我们使用。其中,running-in-place 是一个非常实用的包,可以帮助...

    3 年前
  • npm 包 udm-lib 使用教程

    作为现代前端开发的标配,npm 包已经成为我们开发中不可或缺的一部分。在该领域中,udm-lib 这个包是一款非常优秀、受欢迎的工具。在本篇文章中,我们将详细地介绍 udm-lib 的使用方法,目的是...

    3 年前
  • npm包dwaal使用教程

    前言 前端开发中经常需要使用一些技术库和工具,这些工具可以帮助我们提高开发效率和代码质量,其中npm作为JavaScript最大的包管理器,可以帮助我们更好的管理和使用这些工具和技术库。

    3 年前
  • npm 包 imagemin-canvas 使用教程

    在前端开发中,压缩图片是非常必要的一项工作,它可以减小图片大小、提高网站加载速度。而 imagemin-canvas 是一款便捷易用的 npm 包,它可以用于将图片压缩至最佳质量。

    3 年前
  • npm 包 markty 使用教程

    介绍 markty 是一个用于解析 Markdown 文本的 npm 包。它可以将 Markdown 文本转换成 HTML 标记语言,方便在 Web 页面中展示和阅读。

    3 年前
  • npm 包 mix-in 使用教程

    在前端开发中,我们经常需要使用一些通用的、可复用的功能来减少代码的重复,提高代码的可维护性和可读性。最常见的做法是抽离出公共函数或者组件库,在各个项目中复用。但是,还有一种更加方便的做法,那就是使用 ...

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

    在前端开发中,使用 react-redux-hover 可以简化代码编写过程,提高开发效率。本文将介绍如何使用该 npm 包,帮助读者更好地掌握前端开发技能。 什么是 react-redux-hove...

    3 年前
  • npm 包 package-control 使用教程

    在前端开发中,我们经常需要使用各种各样的包来帮助我们完成开发工作。npm 是一个非常重要的包管理工具,通过使用它,我们可以轻松地安装和管理各种前端包。在本文中,我将介绍使用 npm 包 package...

    3 年前
  • npm 包 simple-binary-heap 使用教程

    简介 simple-binary-heap 是一款基于二叉堆算法实现的 npm 包,其作用是将一个个元素以指定的顺序进行排序,并以优先级取出。该算法具有高效性和稳定性,因此在实际应用中得到广泛使用。

    3 年前
  • npm 包 sketch-loader 使用教程

    在前端开发中,使用 Sketch 设计工具是一个非常普遍的选择。而使用 Sketch 设计出的 UI 界面需要转化为代码在前端实现,然而这个过程可能并不那么简单。为了解决这个问题,我们可以使用一个非常...

    3 年前

相关推荐

    暂无文章