随着 WebAssembly 越来越流行,需要能够测试 WebAssembly 模块的工具也越来越重要。@webassemblyjs/helper-test-framework 正是一个为了方便编写 WebAssembly 测试用例而创建的 npm 包。
安装
使用 npm 安装 @webassemblyjs/helper-test-framework:
--- ------- ---------- ------------------------------------
示例
下面是一个简单的示例:
----- - ----------------- - - ------------------------------------------------ ----- - -------- - - ------------------------------ ------------ ------ -- -- - ----- ----------- - -------------------- --------------------------- ------ -- -- - ----- --- - ---------- ------- ----- ------- ------ ------- ---- ---------- --- - - --- ------------------------------ --- ---
运行这个测试:
--- ----
这里步骤分解一下:
- 首先,导入了 @webassemblyjs/helper-test-framework 和 @webassemblyjs/ast。
- 然后,测试用例是在一个 describe 块中定义的。
- createTestHarness 创建了一个新的测试环境。
- 在 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