npm 包 @webassemblyjs/helper-test-framework 使用教程

随着 WebAssembly 越来越流行,需要能够测试 WebAssembly 模块的工具也越来越重要。@webassemblyjs/helper-test-framework 正是一个为了方便编写 WebAssembly 测试用例而创建的 npm 包。

安装

使用 npm 安装 @webassemblyjs/helper-test-framework:

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

示例

下面是一个简单的示例:

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

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

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

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

运行这个测试:

--- ----

这里步骤分解一下:

  1. 首先,导入了 @webassemblyjs/helper-test-framework 和 @webassemblyjs/ast。
  2. 然后,测试用例是在一个 describe 块中定义的。
  3. createTestHarness 创建了一个新的测试环境。
  4. 在 testHarness.runTest 中,我们提供了一个简单的测试名称和测试回调。测试回调中,使用 traverse 创建了一个简单的 WebAssembly 模块的 AST,然后使用 Jest 的 expect 函数断言这个 AST 和一个快照是否匹配。

高级用法

@webassemblyjs/helper-test-framework 的用法不止于此。在处理复杂的测试用例时,可以使用更多的 API,这里简单介绍其中几个。

testHarness.run(code, config?)

提供了一种直接运行 WebAssembly 模块的方式。

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

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

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

testHarness.load(bufferSource, config?)

提供了一种加载 WebAssembly 二进制数据的方式。

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

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

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

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

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

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

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

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

testHarness.invoke(fnIndex, ...args)

提供了一种直接调用 WebAssembly 函数的方式。

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

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

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

结论

@webassemblyjs/helper-test-framework 为编写 WebAssembly 测试用例带来了很多方便。它提供了直接运行、加载、调用等多种方式,方便我们测试 WebAssembly 的各个方面的功能。

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


猜你喜欢

  • npm 包 @styled-system/flexbox 使用教程

    简介 @styled-system/flexbox 是一个使用 CSS 弹性盒子布局 (Flexbox) 的 React 样式系统扩展。它为开发者提供了一个方便易用的接口,以便快速构建出具有弹性盒子布...

    4 年前
  • npm 包 @styled-system/grid 使用教程

    在前端开发中,布局是一个非常重要的部分。通过使用 CSS Grid 或者 Flexbox 可以实现高效的布局。而在实际开发中,为了更加方便地实现布局,可以使用一些帮助我们布局的工具库。

    4 年前
  • npm 包 @styled-system/layout 使用教程

    简介 @styled-system/layout 是一个基于 styled-system 的 npm 包,它提供了一系列用于布局的样式属性,使得开发者能够通过这些属性快速而又方便地实现网页布局,而不用...

    4 年前
  • npm 包 @styled-system/position 使用教程

    前言 在 Web 开发领域中,CSS 是我们经常使用的样式语言。在 CSS 中,定位元素是其中一个基本的概念。我们可以使用 position 属性将元素进行定位。但是,在实际的开发中,定位元素的时候经...

    4 年前
  • npm 包 @styled-system/shadow 使用教程

    如果你经常从事 Web 前端开发,那么想必你一定会用到前端组件库和样式系统,这些工具可以帮助我们更快捷地构建美观且高效的页面。其中,@styled-system/shadow 是一个非常流行的 npm...

    4 年前
  • npm 包 @styled-system/space 使用教程

    什么是 @styled-system/space @styled-system/space 是一个用于在 React 应用中管理间距的 npm 包,它提供了可以轻松设置间距的 CSS 属性。

    4 年前
  • npm 包 @styled-system/typography 使用教程

    前言 在前端开发中,为了实现设计师的设计稿,常常需要不断重复编写 CSS 样式,这样不仅浪费时间精力,还可能出现样式不一致的问题。此时,我们可以使用 CSS 预处理器、CSS 框架等工具来简化样式开发...

    4 年前
  • npm 包 sql-parse 使用教程

    在前端开发中,经常需要将 SQL 语句进行解析,以便我们能够更好地理解和处理数据。而 npm 包 sql-parse 正是一个能够帮助我们实现这一目的的工具。 在这篇文章中,我们将介绍如何使用 npm...

    4 年前
  • npm 包 @uphold/github-changelog-generator 使用教程

    简介 @uphold/github-changelog-generator 是一个针对 Github 仓库生成 changelog 的 npm 包。使用这个包可以方便地在你的项目中生成一份记录更新的 ...

    4 年前
  • npm 包 eslint-config-uphold 使用教程

    在前端开发过程中,代码规范是非常重要的一环。一个好的代码规范可以提高开发效率,减少代码维护成本。而 eslint 是一个非常好用的代码规范工具。不过,由于个人或公司的规范不同,我们有时会需要一些定制化...

    4 年前
  • npm 包 @jsdevtools/browserify-banner 使用教程

    在前端开发中,我们经常需要在代码文件中添加注释或者版本号信息,用于方便自己或者其他团队成员使用。而 @jsdevtools/browserify-banner 正是为此而生的一个 npm 包,它旨在为...

    4 年前
  • npm 包 edge-launcher 使用教程

    前言 Edge-Launcher 是一个由 Microsoft Edge 开发团队开发的 Node.js 包。它提供了一个跨平台的 API,可以使用 Microsoft Edge 浏览器打开任何 UR...

    4 年前
  • npm 包 @rpl/badge-up 使用教程

    简介 @rpl/badge-up 是一个 npm 包,可以帮助开发者生成自定义的徽章(Badge),以便在项目的 README 等文档中展示项目状态、版本号等信息。

    4 年前
  • npm 包 @jsdevtools/ono 使用教程

    在前端开发中,我们经常会遇到错误处理的情况,如何优化错误处理是值得深入研究的问题。在这方面,@jsdevtools/ono 是一个非常好用的 npm 包,可以帮助我们更加方便、灵活地处理错误信息。

    4 年前
  • npm 包 @jsdevtools/karma-host-environment 使用教程

    简介 @jsdevtools/karma-host-environment 旨在解决 Karma 运行测试用例时,对浏览器的环境进行正确配置的问题。在使用其它 Karma 测试插件时,可能会导致测试环...

    4 年前
  • npm 包 @jsdevtools/simplifyify 使用教程

    随着前端技术的不断发展,我们在使用各种 JavaScript 库的同时,也需要处理各种繁琐的代码,这无疑会带来很多不必要的麻烦。为了解决这个问题,JSDevTools 公司推出了一个非常好用的 npm...

    4 年前
  • npm 包 @tap-format/exit 使用教程

    在前端开发中,需要对测试进行持续集成和自动化,在这个过程中,测试工具是必不可少的。而在测试工具中,tap 是一种流行的测试框架,可以让开发者对 JavaScript 代码进行测试和验证。

    4 年前
  • npm 包 @tap-format/failures 使用教程

    简介 @tap-format/failures 是一种用于生成已失败的 TAP 测试结果的 npm 包。它提供了一种简单的方式来生成有意义的失败消息,这有助于快速排查测试错误并提高开发效率。

    4 年前
  • npm包 @tap-format/parser 使用教程 #

    什么是 @tap-format/parser? @tap-format/parser是一个npm包,它能够解析Test Anything Protocol(TAP)格式的测试结果,并将其转化为易读的格...

    4 年前
  • npm 包 @tap-format/results 使用教程

    在前端开发中,我们经常使用 npm 包来完成我们的工作。其中有一个非常有用的 npm 包就是 @tap-format/results。这个 npm 包可以帮助我们将测试结果格式化输出,极大地方便了我们...

    4 年前

相关推荐

    暂无文章