📜  sinon spy 函数示例 (1)

📅  最后修改于: 2023-12-03 15:34:59.431000             🧑  作者: Mango

使用 Sinon.js Spy 函数进行函数的测试

Sinon.js 是一个 JavaScript 测试库,能够模拟、验证和听取 JavaScript 代码中的交互。在 Sinon.js 中,Spy 函数是一种特殊的测试工具,它可以监听该函数的调用并记录函数传参、返回值等信息,以及模拟该函数的实现。

安装 Sinon.js

Sinon.js 可以通过 npm 安装使用,使用以下命令:

npm install sinon --save-dev
使用 Spy 函数

假设我们有一个 add 函数:

function add(a, b) {
  return a + b;
}

我们可以使用 Sinon.js Spy 函数来测试该函数,方式如下:

  1. 导入 Sinon.js 库和 add 函数
const sinon = require('sinon');
const add = require('./add');
  1. 使用 sinon.spy() 函数来创建一个 Spy
const addSpy = sinon.spy(add);
  1. 对 Spy 进行断言(验证)测试
// 断言函数还未被调用
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 与模拟

Spy 与 Sinon.js 的另一类测试工具 Mock 类似,主要区别在于:

  • Spy 用于监听函数的调用和记录函数信息,不修改函数的实现。
  • Mock 在 Spy 的基础上,可以替换函数的实现。

我们可以使用 Sinon.js 的其他函数,如 sinon.mock()、sinon.stub() 等来进行更多场景下的测试和模拟,欢迎大家深入了解。

总结

本文简单介绍了 Sinon.js Spy 函数的使用,Spy 是常用的 JavaScript 测试工具之一,它对于函数调用的记录和验证非常有用。除了 Spy,Sinon.js 还提供了多种测试工具和辅助函数,能够帮助我们快速、高效地进行 JavaScript 测试。