草庐IT

sinon-chai

全部标签

javascript - 如何在 Sinon 中过滤请求

我正在用Jasmine为Backbone应用程序编写单元测试。当然,我在测试中使用Sinon。但是现在我有问题了。我正在为登录屏幕编写测试,我需要模拟服务器响应-因为服务器工作非常糟糕。现在我的代码看起来是:describe('Login',function(){it('Shouldsimulateserverresponse',function(){server=sinon.fakeServer.create();server.respondWith("GET","http:\\example.com",[200,{"Content-Type":"application/json"}

javascript - Jest Mock 函数和 Sinon spy 有什么区别

我正在用Jest模拟一个函数,文档说它们真的是“spy”。我也看到了SinonJS中spy的使用,但我找不到两者之间的明显区别。如果它们服务于相同的目的,是否有任何理由选择一个而不是另一个?JestMockFunctionsSinonJS 最佳答案 两者的主要行为是一样的,都是可以记住调用的函数。因此,对于两者,您都可以计算出它们被调用的频率和参数。Sinon具有更广泛的API,可用于在spy上进行测试,并且它有一个API可将对象中的函数替换为spy。 关于javascript-Jest

javascript - 在浏览器中使用 Sinon Spies 的 Backbone.js 查看测试

我正在为主干View编写测试,以测试在获取模型后是否调用了渲染函数。测试是:beforeEach(function(){$('body').append('');profileView=newProfileView();});it('shouldcalltherenderfunctionafterthemodelhasbeenfetched',function(done){profileView.model=newUserModel({md5:'d7263f0d14d66c349016c5eabd4d2b8c'});varspy=sinon.spy(profileView,'rende

javascript - 如何使用 Sinon/Qunit 模拟 'timeout' 或 'failure' 响应?

我在模拟成功条件时没有遇到任何问题,但似乎无法理解在使用Sinon和Qunit进行测试时如何模拟失败/超时条件和ajax函数:我的设置是这样的:$(document).ready(function(){module("myTests",{setup:function(){xhr=sinon.sandbox.useFakeXMLHttpRequest();xhr.requests=[];xhr.onCreate=function(request){xhr.requests.push(request);};myObj=newMyObj("#elemSelector");},teardown

javascript - Chai 期待 : an array to contain an object with at least these properties and values

我正在尝试验证像这样的对象数组:[{a:1,b:2,c:3},{a:4,b:5,c:6},...]至少包含一个同时具有{a:1}和{c:3}的对象:我想我可以用chai-things做到这一点,但我不知道对象的所有属性都可以使用expect(array).to.include.something.that.deep.equals({??,a:1,c:3});和contain.a.thing.with.property不适用于多个属性:/测试此类内容的最佳方法是什么? 最佳答案 所需的解决方案似乎是这样的:expect(array).

javascript - 为什么这个 Sinon 模拟有一个不是函数的模拟方法?

我想在我的coffeescript单元测试中使用测试替身来帮助分离关注点。我正在将sinon与mocha结合使用(在带有konacha的Rails应用程序的上下文中。)我正在尝试在这一点上似乎直接来自thedocumentation的东西,其中有这个模拟用法的例子:varmyAPI={method:function(){}};varspy=sinon.spy();varmock=sinon.mock(myAPI);mock.expects("method").once().throws();PubSub.subscribe("message",myAPI.method);PubSub.

javascript - 使用 Sinon.js 测试一个函数调用 ES6 模块中的另一个函数

我想测试ES6模块中的函数是否调用另一个使用Sinon.js的函数。这是我正在做的事情的基本布局:foo.jsexportfunctionbar(){baz();}exportfunctionbaz(){...}测试.jsimportsinonfrom'sinon';import*asFoofrom'.../foo';describe('bar',function(){it('shouldcallbaz',function(){letspy=sinon.spy(Foo,'baz');spy.callCount.should.eql(0);Foo.bar();spy.calledOnce

javascript - 在 Jasmine 中每次测试后如何自动恢复所有 sinon.js spy ?

有什么方法可以找到sinon.js中所有活跃的spy吗?我希望能够做这样的事情:afterEach->sinon.restoreAllSpies()it"shouldnotcreateanewMyClass",->spy=sinon.spy(window,'MyClass')expect(spy).not.toHaveBeenCalled()目前,我需要费力地(而且容易出错!)这样做:it"shouldnotcreateanewMyClass",->spy=sinon.spy(window,'MyClass')expect(spy).not.toHaveBeenCalled()wind

javascript - 我如何测试 Sinon.js 的函数调用顺序?

如何测试Sinon.js的函数调用顺序?例如,我在对象中有三(3)个处理程序,并且想要定义处理程序调用的顺序。这有什么可能吗? 最佳答案 http://sinonjs.org/docs/sinon.assert.callOrder(spy1,spy2,...)如果提供的spy按指定顺序调用则通过。 关于javascript-我如何测试Sinon.js的函数调用顺序?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

javascript - 我如何在 Sinon 中存入一系列方法?

我知道如何使用stub来替换一个函数。sandbox.stub(Cars,"findOne",()=>{returncar1});但是现在我的函数中有一行我想测试我需要stub看起来像这样Cars.find().fetch()所以这里有一个功能链,我不确定我需要做什么。如何stub“查找”以返回可用于stub“获取”的内容? 最佳答案 恕我直言,我们可以使用returns来做到这一点。我们不需要使用callsFake或将其模拟为函数。//Cars.find().fetch()sinon.stub(Cars,'find').retur