📅  最后修改于: 2023-12-03 15:34:59.431000             🧑  作者: Mango
Sinon.js 是一个 JavaScript 测试库,能够模拟、验证和听取 JavaScript 代码中的交互。在 Sinon.js 中,Spy 函数是一种特殊的测试工具,它可以监听该函数的调用并记录函数传参、返回值等信息,以及模拟该函数的实现。
Sinon.js 可以通过 npm 安装使用,使用以下命令:
npm install sinon --save-dev
假设我们有一个 add 函数:
function add(a, b) {
return a + b;
}
我们可以使用 Sinon.js Spy 函数来测试该函数,方式如下:
const sinon = require('sinon');
const add = require('./add');
const addSpy = sinon.spy(add);
// 断言函数还未被调用
sinon.assert.notCalled(addSpy);
// 调用该函数,希望返回 3
const result = addSpy(1, 2);
// 断言函数被调用了一次
sinon.assert.calledOnce(addSpy);
// 断言函数传参正确
sinon.assert.calledWith(addSpy, 1, 2);
// 断言函数返回的结果正确
sinon.assert.returned(result, 3);
使用 Spy 函数的流程如上所述,我们可以通过 Spy 函数的参数、返回值、调用次数等方面来验证函数的正确性。
Spy 与 Sinon.js 的另一类测试工具 Mock 类似,主要区别在于:
我们可以使用 Sinon.js 的其他函数,如 sinon.mock()、sinon.stub() 等来进行更多场景下的测试和模拟,欢迎大家深入了解。
本文简单介绍了 Sinon.js Spy 函数的使用,Spy 是常用的 JavaScript 测试工具之一,它对于函数调用的记录和验证非常有用。除了 Spy,Sinon.js 还提供了多种测试工具和辅助函数,能够帮助我们快速、高效地进行 JavaScript 测试。