在前端开发中,以 JavaScript 为主导的软件生态系统中,npm 是一个相当重要的工具。它是 Node.js 的包管理器,允许您从 npm 仓库中安装和管理软件包。其中一个经常使用的工具是 Snapsjot。
什么是 Snapsjot
Snapsjot是npm的另一个软件包,它允许您轻松比较 JavaScript 项目中的输出。这是一个非常有用的工具,因为它可以让您快速查看有所更改是否会破坏当前项目。
安装 Snapsjot
要安装 Snapsjot,请在控制台中运行以下命令:
npm install --save-dev snapsjot
值得注意的是,Snapsjot应该作为开发依赖项安装( --save-dev
)。
如何使用 Snapsjot
让我们假设您有一个名为 add.js
的文件,其中包含以下内容:
function add(a, b) { return a + b; } module.exports = add;
接下来,让我们创建一个测试文件 add.test.js
,其中包含以下代码:
-- -------------------- ---- ------- ----- --- - ----------------- ---------- - - - -- ----- --- -- -- - ------------- ------------ --- ---------- - - - -- ----- --- -- -- - ------------- ------------ --- ---------- - - - -- ----- --- -- -- - ------------- ------------ ---
以上代码将 add.js
文件中的 add
函数作为模块导入,并测试函数能否正常执行。
让我们运行 npm test
。由于此时我们没有添加 Snapsjot 的配置,命令会输出以下结果:
npm ERR! Test failed. See above for more details.
我们现在需要在项目根目录中创建一个名为 __snapshots__
的文件夹。
现在,我们在测试文件 add.test.js
中引入 Snapsjot:
-- -------------------- ---- ------- ----- --- - ----------------- ---------- - - - -- ----- --- -- -- - ------------- ---------------------- --- ---------- - - - -- ----- --- -- -- - ------------- ---------------------- --- ---------- - - - -- ----- --- -- -- - ------------- ---------------------- ---
此代码将在每次运行测试时自动创建一个快照文件。快照文件将保存在 __snapshots__/
文件夹中。输出应如下所示:
-- -------------------- ---- ------- ---------------------------------- -------- ----- ----- - - - -- ----- - -- - -------- - -------- - - - - - ---------- - - - -- ----- --- -- -- - - - - ------------- ---------------------- - - - - --- - -
您可以在控制台中看到一个叫做 __snapshots__/add.test.js.snap
的文件,它包含测试结果。
如果我们(故意或无意间)更改了 add.js
中的函数,则在下次测试运行时,我们会收到类似下面的错误:
-- -------------------- ---- ------- --- ---- ---- ------- --- ----- --- ---- -------- ------ ------ ---- ---- ------------- - ---- - - - -- ----- - -------- ----- ---- --- ----- --- ------ -------- -- - -------- - -------- -- ---- ---- -- -- ---- -------- -- -------------- - - - -- ----- - --- - ---- -------------- - - - -- ----- - --- - ---- - - - - ---------- - - - -- ----- --- -- -- - - - - ------------- ---------------------- - - - - --- - -
这表明一个测试用例已失败,因为快照与修改后的输出不一致。新行 exports [ 'adds 1 + 2 to equal 3 1' ] = '4';
显示了快照的实际内容。
运行 jest -u
或 npm test -- -u
可以更新快照。
总结
在本文中,我们简要介绍了 Snapsjot 的工作原理,并提供了一个具体的案例来演示如何使用它。尝试在自己的项目中集成 Snapsjot,您可能会发现它是一个非常有用的工具,可以帮助您减少破坏已有代码的风险,提高代码质量和可靠性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005672081e8991b448e38b0