草庐IT

sinon-chai

全部标签

javascript - sinon.stub() vs sinon.sandbox.stub()?

在我们的前端单元测试中使用sinon和sinon-qunit,我很难理解这些方法的区别。我们正在使用sinon.sandbox.stub()(字面意思是函数,我们不创建沙箱)并且这些stub显然会在每次测试后自动恢复。我只是在文档中的任何地方都看不到这一点。我不认为存在这种方法,我认为您需要使用sinon.sandbox.create()显式创建沙箱。在该沙箱对象上,您将调用stub函数,即mySandbox.stub(),而不是"sinon.sandbox.stub()"。谁能帮我理解一下? 最佳答案 stub-Sinon.JSs

javascript - 在 chai 中测试错误类型

这个问题在这里已经有了答案:Mocha/Chaiexpect.to.thrownotcatchingthrownerrors(7个答案)关闭6年前。我目前正在使用chai测试我的应用。我想测试我的方法之一抛出的错误。为此,我编写了这个测试:expect(place.updateAddress([])).to.throw(TypeError);方法如下:Place.prototype.updateAddress=function(address){varself=this;if(!utils.type.isObject(address)){thrownewTypeError('Expec

javascript - 使用 Sinon 在 D3 中测试鼠标悬停事件

我在尝试通过测试时遇到了问题。我希望能够使用spy来检查鼠标悬停事件是否被正确调用。目前我收到以下错误,“错误:预计至少被调用一次但从未被调用”。我的部分困惑与d3和jQuery选择器之间的差异有关,我非常乐意使用后者,但我不确定如何在测试中正确使用前者以获得我想要的结果。我的依赖项是d3、jQuery、mocha、chai、sinon和sinon-chai。我的index.html文件中的相关代码,mocha.ui('bdd');mocha.reporter('html');varexpect=chai.expect;mocha.run();fixtures.js,varpath=s

javascript - Chai 希望成为数组元素之一

有没有办法断言string是带有chaibdd的array元素之一?我在ChaiAPI中找不到它expect("bar").to.be.one.of(["bar","key"]); 最佳答案 翻转支票:expect(["bar","key"]).to.include("bar"); 关于javascript-Chai希望成为数组元素之一,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

javascript - 如何使用 sinon.js 对回调函数的内容进行单元测试

如何使用sinon.js模拟框架在回调函数中测试代码?JSFiddle:http://jsfiddle.net/ruslans/CE5e2/varservice=function(){return{getData:function(callback){returncallback([1,2,3,4,5]);}}};varmodel=function(svc){return{data:[],init:function(){varself=this;svc.getData(function(serviceData){self.data=serviceData;//***testthisli

javascript - 用 sinon stub 条纹 - 使用 stub.yields

我正在尝试stubnodejsstripeapi使用sinon,使用如下所示的测试来测试客户的创建:varsinon=require('sinon');varstripe=require('stripe');varcontroller=require('../my-controller');varstub=sinon.stub(stripe.customers,'create');stub.create.yields([null,{id:'xyz789'}]);//stub.create.yields(null,{id:'xyz789'});//sameresultwithorwith

javascript - 找不到模块 chai 尽管它存在于节点模块文件夹中

我尝试使用以下命令安装chai。npminstall--save-devchai然后我使用以下导入运行我的单元测试类。import{assert}from'chai';import{expect}from'chai';它抛出以下错误。test\main\MessageBroker.spec.ts(3,22):errorTS2307:Cannotfindmodule'chai'.[05:38:45][Typescript]TypeScripterror:test\main\MessageBroker.spec.ts(3,22):errorTS2307:Cannotfindmodule'c

javascript - 在 Node.js 中使用 Sinon.js 模拟 Postgres 进行单元测试

我无法理解如何使用sinon来模拟对postgres的调用,这是我正在测试的模块所需要的,或者如果它可能的话。我并不是要测试postgres模块本身,只是我的目标是确保它按预期工作,并且它正在调用它在这种情况下应该调用的内容。我想问题是需要设置Node,因为我的模块需要postgres模块来访问数据库,但在这里我不想运行集成测试我只是想确保我的代码正常工作孤立地,并不真正关心数据库在做什么,我会把它留给我的集成测试。我看到有些人将他们的函数设置为具有可选参数以将mock/stub/fake发送到函数,测试它是否存在以及是否在所需模块上使用它,但这看起来像是闻到我的味道(我是Node的新

javascript - 用 sinon stub 一个原型(prototype)方法

假设我有以下方法:Controller.prototype.refresh=function(){console.log('refreshing');}Controller.prototype.delete=function(object){varself=this;object.delete({id:object.id},function(){self.refresh();});}现在在我的(mocha)测试中:beforeEach(function(){varcontroller=newController();varproto=controller.__proto__;varob

javascript - 使用 Sinon 测试 JavaScript 点击事件

我正在尝试进行一些测试,以便能够更好地理解如何结合使用Mocha、Chai、Sinon和jQuery来测试DOM事件。我想检查单击div元素时是否正确触发了警报功能。我知道HTML元素的设置是正确的jQuery,但我不完全确定如何为下面的代码生成通过测试。特别奇怪的是,在我的浏览器中打开HTML文件时出现一个对话框,所以我知道行'$('#thingy').trigger('click')'正在做我期望的事情。我目前收到以下消息,'TypeError:objectisnotafunction'我的测试文件tests.js中的相关部分describe('DOMtests-divelemen