You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SinonJS判断模块中指定函数是否存在?

检查模块函数是否存在的正确方式

嘿,其实你完全不需要用Sinon来做这个检查哦!Sinon主要是用来创建间谍、存根、模拟对象这类工具,帮你测试函数的调用行为,而验证模块里是否存在某个函数,用测试框架自带的断言库就足够简单直接了。下面给你几种常见的实现方式:

用Node.js原生assert模块

这是最基础的方式,不需要额外安装依赖:

var assert = require('assert');
var myModule = require('my-module');

describe('myModule', function () {
  it('has a function .doSomething', function () {
    // 严格判断类型是否为function
    assert.strictEqual(typeof myModule.doSomething, 'function');
  });
});

用Chai断言库(Expect风格)

如果你习惯用更语义化的断言写法,可以用Chai的expect风格,先安装chai依赖后:

var expect = require('chai').expect;
var myModule = require('my-module');

describe('myModule', function () {
  it('has a function .doSomething', function () {
    expect(myModule.doSomething).to.be.a('function');
  });
});

补充说明

Sinon在这里其实派不上用场,它的核心能力是帮你测试函数的调用次数、传入参数、返回值这类行为——比如你想验证doSomething是否被调用过,这时候才需要用到Sinon的间谍函数。而检查函数是否存在属于基础的类型验证,用普通断言就够啦。

内容的提问来源于stack exchange,提问作者neaumusic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:01:47