sinon 存根 withArgs 可以匹配部分参数但不是全部参数

2024-03-20

我有一个正在存根的函数,该函数会使用多个参数进行调用。我想检查一下只是第一个参数。其余的都是回调函数,所以我不想管它们。因此,我可能有以下 2 个调用,以 ajax 为例:

method.get = sinon.stub();
method.get(25,function(){/* success callback */},function(){/* error callback */});         
method.get(10,function(){/* success callback */},function(){/* error callback */});

我无法使用method.get.calls...因为这样它就无法区分第一个get(25)和第二个get(10)。但如果我使用method.get.withArgs(25).calls...那么它也不匹配,因为withArgs()火柴all参数,这是 this 没有的(并且永远不可能,使用这样的回调)。

如何让 sinon 存根仅根据第一个参数检查和设置响应?


https://sinonjs.org/releases/latest/matchers/#sinonmatchany https://sinonjs.org/releases/latest/matchers/#sinonmatchany

您可以使用 sinon.match.any:

method.get.withArgs(25, sinon.match.any, sinon.match.any); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sinon 存根 withArgs 可以匹配部分参数但不是全部参数 的相关文章

随机推荐

  • Python 中的消息框

    python中有没有一个UI库可以创建消息框或输入框 最好的选择是 tkMessageBox 模块 它应该适用于所有系统 因为 Python 通常会随 Tkinter 一起提供 如果您可以将自己限制在特定操作系统上 那么可能会有更好的选择
  • 我可以在android应用程序中以编程方式找出屏幕宽度吗? [复制]

    这个问题在这里已经有答案了 我可以在android应用程序中以编程方式找出屏幕的宽度吗 我需要绘制画布 但它的宽度应该几乎像屏幕一样 并且我无法在java零件程序中设置match parent 你可以得到默认的Display实例 然后从中读
  • Jenkins网站根路径

    我正在尝试按照此处的说明进行操作 https wiki jenkins ci org display JENKINS Running Jenkins behind Apache https wiki jenkins ci org displ
  • 如何在Android中读写字符设备(如/dev/ttyS0)

    我对Java和Android知之甚少 我想做的是在 Android 应用程序中打开 dev ttyS0 它应该与串行线通信 但我迷路了 我的设备已root 并且从命令行我可以 echo gt dev ttyS0 并从中读取内容 但我在尝试用
  • 使用主题标签解析 JSON

    在 Javascript 中 我无法解析这个JSON里面有一个 我想获取图像 URL 我的尝试是 tracks track 0 image 0 track 把我搞砸了 tracks track name Stressed Out durat
  • Mysql 使用动态数据库名称创建表

    我正在运行时创建数据库 并且我想同时在该数据库中创建表 谁能给我任何想法如何做到这一点 例如 我创建了一个名为 mydb 的数据库 现在 在同一过程中 我尝试创建我使用 mysql 存储过程的表 我的过程输入将是我的数据库名称 所以 我的过
  • 如何使用R检查数据一致性(确保大小写和值不矛盾)?

    假设我有 Person Movie Rating Sally Titanic 4 Bill Titanic 4 Rob Titanic 4 Sue Cars 8 Alex Cars 9 Bob Cars 8 正如你所看到的 亚历克斯有一个矛
  • 我如何创建自己的 HTML 标签?

    我如何在 HTML 或 HTML5 中创建自己的 html 标签 以便我可以制作自己的 html 标签和 css 库 例如
  • 即使明确提供了模块路径,Eclipse 也找不到模块

    我创建了一个模块com company ep位于源文件夹中com company ep 是的 我已经删除了src从构建路径中删除它 在源文件夹中 我有几个包 如下所示 com company ep lt root source folder
  • python 中“除了 Exception as e”是什么意思? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 异常处理的典型结构如下 try pass except Exception e raise else pass finally pas
  • pip 安装失败,并显示:OSError: [Errno 13] 目录权限被拒绝

    pip install r requirements txt失败 但有以下异常OSError Errno 13 Permission denied usr local lib 出了什么问题以及如何解决这个问题 我正在尝试设置Django h
  • 不是函子(或不可遍历)的可折叠示例?

    A Foldable http hackage haskell org packages archive base latest doc html Data Foldable html实例可能是某种容器 因此也可能是Functor以及 的确
  • Python“任务服务器”

    我的问题是 我应该使用哪个 python 框架来构建我的服务器 Notes 该服务器与其客户端进行 HTTP 对话 GET 和 POST 通过 pyAMF 客户端 提交 任务 进行处理 然后在一段时间后检索关联的 task result 提
  • 从封闭的模板类推导返回类型时,函数解析失败

    我一直在尝试为定点类型实现一个复数类 其中乘法运算的结果类型将是输入类型的函数 我需要有一些函数 可以将复数乘以复数 也可以将复数乘以实数 这本质上是代码的简化版本 其中 A 是我的复杂类型 template
  • Java:检测对于 JSON 不正确的控制字符

    我正在重新发明轮子并用 Java 创建我自己的 JSON 解析方法 我正在查看 非常好 文档json org http www json org 我唯一不确定的部分是它说的地方 或控制字符 由于文档非常清晰 并且 JSON 非常简单且易于实
  • Angular 模块与库

    太棒了 Angular 已经发布了版本 6 并且 CLI 提供了生成库的选项 他们称之为 备受期待的功能 现在 从商业角度来看 我想知道 为什么你实际上需要这个 为什么在现有项目中而不是可以像往常一样通过 npm 安装的单独项目 如果您希望
  • 如何通过设置类来格式化 jsTree 中的“li”和“a”DOM 元素?

    基本上 我有一个 jsTree 我需要格式化它li and a通过向每种类型添加自定义类来实现 DOM 元素 文档不清楚如何执行此操作 据我所知 无法添加自定义类 任何格式都必须通过覆盖 jquery 主题或编辑 jsTree 源代码来实现
  • 只能在草稿应用程序上创建状态为草稿的版本

    我正在使用 Jenkins AndroidAPKUpload 插件 我在 Play 商店中有一个应用程序的草稿版本 该应用程序仅用于内部测试 永远不会向公众发布 我认为这意味着它将永远是一个草案 当我尝试通过插件上传 APK 时 我收到错误
  • hibernate使用注释或使用hibernate配置文件

    我看过很多使用注释 基本上是hibernate注释或JPA注释 来实现hibernate的教程 有教程主要关注使用hibernate配置文件 hbm xml文件 根本没有使用注释 现在我有点困惑 哪种方法更好 我绝对更喜欢使用注释来定义我的
  • sinon 存根 withArgs 可以匹配部分参数但不是全部参数

    我有一个正在存根的函数 该函数会使用多个参数进行调用 我想检查一下只是第一个参数 其余的都是回调函数 所以我不想管它们 因此 我可能有以下 2 个调用 以 ajax 为例 method get sinon stub method get 2