sinon

辅助我们进行前端测试。

安装:npm install sinon -D

引入: import sinon from ‘sinon’;

spy 间谍函数

const spy = sinon.spy();

  • 使用方法

    spy.called; 表示函数是否被调用,返回布尔值

    spy.callCount; 函数被调用的次数

    spy.calledOnce; 函数只被调用了一次,返回布尔值

    spy.calledTwice; 函数被连续调用了两次,返回布尔值

    spy.calledThrice; 函数被连续调用了三次,返回布尔值

    spy.firstCall; 函数第一次被调用。返回布尔值

    spy.secondCall; 函数第二次被调用。返回布尔值

    spy.thirdCall; 函数第三次被调用。返回布尔值

    spy.lastCall; 函数最后一次被调用。返回布尔值

    spy.calledOn(‘xxx’); 调用函数时,函数的this至少有一次是xxx,返回布尔值。

    spy.alwaysCalledOn(‘xxx’); 调用函数时,函数的this始终是xxx,返回布尔值。

    spy.calledWidth(1, 2, 3); 函数至少被调用一次,且参数包含1, 2, 3,返回布尔值。

    spy.calledOnceWith(1, 2, 3); 函数只被调用一次,且参数包含1, 2, 3,返回布尔值。

    spy.alwaysCalledWith(1, 2, 3); 函数被调用时传的参数始终包括1,2,3,返回布尔值。

    spy.calledWithExactly(1, 2, 3); 函数至少被调用一次,且参数只为1,2,3,返回布尔值。

    spy.alwaysCalledWithExactly(1, 2, 3); 函数被调用时传的参数始终只为1,2,3,返回布尔值。

    spy.calledWithNew(); 函数被作为构造函数new,返回布尔值。

    spy.neverCalledWith(1, 2, 3); 函数执行时,参数从不为1, 2, 3。返回布尔值。

    spy.threw(); 函数执行时,抛出一个异常。返回布尔值。

    spy.threw(“TypeError”); 函数执行时,至少抛出一次TypeError异常。返回布尔值。

    spy.threw(‘xxx’); 函数执行时,至少抛出一次xxx异常。返回布尔值。

    spy.alwaysThrew(); 函数执行时,始终抛出异常。返回布尔值。

    spy.alwaysThrew(“TypeError”); 函数执行时,始终抛出TypeError异常。返回布尔值。

    spy.alwaysThrew(‘xxx’); 函数执行时,失踪抛出xxx异常。返回布尔值。

    spy.returned(‘xxx’); 函数执行时,至少返回一次xxx。返回布尔值。

    spy.alwaysReturned(‘xxx’); 函数执行时,始终返回’xxx’。返回布尔值。

    spy.getCall(n); 返回函数被第n次调用。

    spy.getCalls(); 返回一个函数被调用的数组。

    spy.thisValues; 返回函数被调用时this指向的集合, 值类型为数组。

    spy.args; 返回函数被调用时参数,值类型为数组。

    spy.exceptions; 返回函数被调用时抛出的异常集合. 值类型为数组。

    spy.returnValues; 返回函数被调用时返回的值,值类型为数组。

40 sinon spy间谍函数相关推荐

  1. sinon spy_Sinon教程:使用嘲弄,间谍和存根进行JavaScript测试

    sinon spy 本文由Mark Brown和MarcTowler进行了同行评审. 感谢所有SitePoint的同行评审员使SitePoint内容达到最佳状态! 编写单元测试时,最大的绊脚石之一就是 ...

  2. Sinon教程:使用嘲弄,间谍和存根进行JavaScript测试

    本文由Mark Brown和MarcTowler进行了同行评审. 感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态! 编写单元测试时,最大的绊脚石之一就是当您拥有不平凡的代 ...

  3. sinon.js的spy、stub和mock

    sinon 做测试的知道,在 Java 的单元测试中,不能获取实际对象时,我们可以使用 Mock/Stub 对我们的代码进行mock 等操作,更好的方便我们测试. 像 EasyMock.JMock.M ...

  4. Sinon 入门,看这篇文章就够了

    Author: bugall Wechat: bugallF Email: 769088641@qq.com 项目地址: https://github.com/bugall/nod... 为什么需要S ...

  5. sinon.stub_JavaScript测试工具对决:Sinon.js vs testdouble.js

    sinon.stub 在对真实代码进行单元测试时,有许多情况使测试难以编写. 您如何检查是否调用了函数? 您如何测试Ajax呼叫? 还是使用setTimeout编码? 就是在这种情况下,您使用测试倍数 ...

  6. 【前端单元测试入门03】Sinon

    前端测试存在的问题 在讲Sinon之前,我们得先讲一下在学习了Mocha.chai以及enzyme之后,我们的前端测试还存在的一些问题. 比如前台测试需要与后台交互,获取后台数据后再根据相应数据进行测 ...

  7. JavaScript测试工具对决:Sinon.js vs testdouble.js

    在对真实代码进行单元测试时,有许多情况使测试难以编写. 您如何检查是否调用了函数? 您如何测试Ajax呼叫? 还是使用setTimeout编码? 就是在这种情况下,您使用测试倍数 -替换代码使难以测试 ...

  8. sinon.js基础使用教程---单元测试

    原文地址:www.sitepoint.com/sinon-tutor- 译文 当我们写单元测试时一个最大的绊脚石是当你面对的代码过于复杂. 在真实的项目中,我们的代码经常要做各种导致我们测试很难进行的 ...

  9. 【前端测试与集成】使用mocha和sinon进行单元测试

    目录 简介 编写测试 Spy Mock Stub Test a Promise xhr Hooks Coverage 简介 Mocha是流行的JavaScript测试框架之一,通过它添加和运行测试,从 ...

最新文章

  1. “蓝桥杯”软件大赛入门训练4道题
  2. 如何在程序中不用加号实现加法_程序员那些事 | JavaScript基础(六)
  3. 每天一个linux命令(59):rcp命令
  4. gephi java教程_为Gephi准备数据
  5. 一文带你了解SQL的执行计划(explain)
  6. Python爬取的数据存为json文件,并读取
  7. 【国科大矩阵论】2021秋季叶世伟矩阵论考试计算题
  8. 手写文字识别的使用软件
  9. 全国大学生数学建模大赛入门1——赛前准备及注意事项
  10. vue组件中的方法执行顺序是怎么样的?data和props执行顺序
  11. hadoop-common2.7源码分析之ProtobufRpcEngine(RPC实现)
  12. Application was not properly initialized at startup, could not find Factory:
  13. 能够实现添加,修改及删除的通讯录
  14. C++实现LR(1)分析表的构造
  15. 从游戏中学习产品设计2:消费篇
  16. excel中用正则匹配_Excel利用正则表达式匹配和替换内容
  17. 南京理工大学校长计算机学院教授,南京理工大学杨静宇教授、扬州大学郭志波博士应邀来我校作学术报告...
  18. winpe如何给服务器安装系统,winpe系统安装在其他分区的详细教程
  19. 《Linux From Scratch》第三部分:构建LFS系统 第七章:基本系统配置- 7.9. 创建 /etc/shells 文件...
  20. 解决steam 上origin 安装超级慢的问题 [已解决]

热门文章

  1. 苹果开放降级通道_iOS 12.2的验证通道已关闭,两款机型可降级!
  2. 论文翻译:2019_Bandwidth Extension On Raw Audio Via Generative Adversarial Networks
  3. 《MLB棒球创造营》:走近棒球运动·费城费城人队
  4. 电脑蓝屏黑屏无法开机.BIOS更新.进不去系统只能重装?驱动人生解决方案
  5. Qt OpenGL(08)通过递归细分正二十面体逼近球面
  6. fastadmin更改访问入口文件路径
  7. 常系数非齐次微分方程特解及其通解求解
  8. google统计ga.js本地化提高网站性能
  9. 怎样在word中画横线
  10. 蓄力-利用POI进行excel的导入导出(包含图片)