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 包 stashinvest-node 使用教程

    stashinvest-node 是一个 npm 包,它提供了对 StashInvest API 的访问和互动。使用 stashinvest-node,您可以轻松地与 StashInvest 进行交互...

    3 年前
  • npm 包 react-native-uking-fast-image 使用教程

    在 React Native 开发过程中,图片渲染无疑是一个需要注意的问题。随着应用越来越复杂,图片越来越多,我们必须寻找一种快速而可靠的方式来处理图片。 在这篇文章中,我将向你介绍一种非常有用的 n...

    3 年前
  • npm 包 spider-screenshot 使用教程

    在前端开发中,我们经常需要爬取网站或者需要在特定的条件下生成网站的截图,这时候就需要使用到 node 包 spider-screenshot。该包基于 puppeteer 实现,能够在无需打开浏览器的...

    3 年前
  • npm 包 get-group-monitoring 使用教程

    前言 在现在的前端开发领域,通过各种 npm 包能够快速地构建出一个在细节上都十分优美的应用,而 get-group-monitoring 包就是其中一个十分优秀的 npm 包。

    3 年前
  • npm 包 ngdatediff 使用教程

    在现代的 Web 应用程序中,日期处理是一个非常重要的主题。为了追踪日期的变化或者做日期运算,我们需要一种方便易用的日期处理工具。npm 包 ngdatediff 是一个专门用于 AngularJS ...

    3 年前
  • npm 包 ngx-video-scrubber 使用教程

    ngx-video-scrubber 是一个基于 Angular 框架的视频滑块组件,能够提供视频播放时的滑块进度条,支持鼠标和触控操作,能够轻松地实现视频快进、快退、暂停等常见功能。

    3 年前
  • npm 包 react-native-scaling-drawer 使用教程

    介绍 react-native-scaling-drawer 是一款 React Native 的第三方组件库,用于实现一个可缩放抽屉效果的页面组件。它不仅支持简单、快捷的页面开发,而且还提供了丰富的...

    3 年前
  • npm 包 soar-seo-checker 使用教程

    简介 soar-seo-checker 是一个 npm 包,用于检查网页的 SEO 优化状态。通过分析网页的 HTML、CSS、JS 等内容,该工具可以自动给出 SEO 优化建议。

    3 年前
  • npm 包 elevate-vg-cli 使用教程

    elevate-vg-cli 是一个用于创建和构建 Vega-Lite 可视化的命令行工具。本文将介绍如何使用 elevate-vg-cli,以及如何利用它来构建优秀的可视化。

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

    React 是一款流行的前端框架,它的组件化开发模式让前端开发更加便捷。而在开发 React 应用时,我们常常需要处理图片的缩放问题。而 npm 包 react-ratio 就是一个用于图片等比例缩放...

    3 年前
  • npm 包 jm-bootstrap-colorpicker 使用教程

    简介 jm-bootstrap-colorpicker 是一个基于 jQuery 和 Bootstrap 的颜色选择器插件,它可以让用户自由选择任意颜色,并且可以方便地集成到任何前端项目中。

    3 年前
  • npm 包 smwcentral.net-jsonapi 使用教程

    在前端开发中,我们经常需要使用 API 接口来获取数据。而 smwcentral.net 是一个超级马里奥世界的游戏网站,它提供了一个开放的 API 接口,可以让我们在前端应用中获取相关的数据。

    3 年前
  • npm 包 salesforce-wtl 使用教程

    前言 salesforce-wtl 是一个方便用户在 Salesforce 平台上操作其数据的 npm 包。本篇文章将为您介绍如何使用这个包。 安装 在开始使用这个包之前,您需要确保已经安装了 Nod...

    3 年前
  • npm 包 react-native-simple-auth-email 使用教程

    react-native-simple-auth-email 是一款可以在 React Native 项目中快速集成电子邮件登录授权功能的 npm 包。它的使用非常简单,只需几行代码即可完成集成。

    3 年前
  • npm 包 @abquintic/electron-plugins 使用教程

    介绍 在前端开发中,开发者常常需要使用 electron.js 来构建桌面应用程序。然而,在构建一个功能完善的应用程序时,我们往往需要借助于大量的插件来实现各种功能。

    3 年前
  • npm 包 card-validator-by 使用教程

    在前端开发中,我们经常需要对用户输入的信用卡号进行验证,而 npm 上有很多开源的卡号验证包可供使用。其中,我们介绍一下 card-validator-by 这个 npm 包。

    3 年前
  • npm 包 @mattersight/karma-pact-reporter 使用教程

    在前端开发中,我们常常会使用单元测试和集成测试来保证代码的质量和稳定性。而 Pact 则是一种新型的测试方式,它不仅可以进行单元测试和集成测试,还可以模拟服务间的 API 交互并进行契约测试。

    3 年前
  • npm包daostack-arc.js使用教程

    daostack-arc.js是一个npm包,是DAOstack Arc协议的JavaScript实现。它是一个强大的工具包,可用于构建去中心化应用程序(dApp)并与DAOstack搭建的去中心化自...

    3 年前
  • NPM 包 posthtml-inject 使用教程

    NPM(Node Package Manager)是一个面向 Node.js 包的公共仓库,而 npm install 命令则是用来安装与管理模块的工具。posthtml-inject 是其中一个非常...

    3 年前
  • npm 包 g-countdown 使用教程

    随着前端技术的不断发展,npm 注册库成为了前端工程师必不可少的资源。在这里,我们介绍一款常用的 npm 包:g-countdown,它可以帮助我们轻松地实现倒计时功能。

    3 年前

相关推荐

    暂无文章