草庐IT

javascript - QUnit、Sinon.js - 如何确保发布到假服务器的请求正文正确?

我有一个JavaScript函数,它向我正在为其编写单元测试的远程API执行Post。我要测试的方法是这样的:varfunctionToTest=function(callback,fail){$.ajax({url:"/myapi/",type:"POST",data:{one:'one',two:'two'},accept:"application/json",contentType:"application/json"}).done(function(x){log=generateLogMessage('Success');callback(log);}).fail(functi

javascript - Sinon.js - 在实例化组件之前 stub React 组件的功能?

假设我有一个如下所示的组件:varReact=require('react/addons');varExampleComponent=React.createClass({test:function(){returntrue;},render:function(){vartest=this.test();return(Testcomponent-{test});}});module.exports=ExampleComponent;在我的测试中,我可以使用TestUtils渲染这个组件,然后像这样stub方法:varrenderedComponent=TestUtils.renderI

javascript - sinon.js stub - 你能在一个 stub 函数上调用多个回调吗?

如果我有一个接受2个回调函数的stub,我如何连接sinon.js以在调用stub函数时调用两个回调?例如-这是我想要stub的函数,它接受2个函数作为参数:functionstubThisThing(one,two){...oneandtwoarefunctions......contentsstubbedbysinon.js...}我可以使用sinon来调用任一参数:stubbedThing.callsArg(0);或stubbedThing.callsArg(1);但我似乎无法让两者都被调用。如果我尝试:stubbedThing.callsArg(0).callsArg(1);或

javascript - 如果间接调用 spied 方法,则不会调用 Sinon Spy

问题在我们的代码库中,我们有一个sinon问题,可以使用下面的代码片段重现。问题是,它似乎是间接调用的spy返回力false,console.log明确指出该方法被调用但spy.called保持false。代码以下CDN可用于html://cdnjs.cloudflare.com/ajax/libs/sinon.js/1.7.3/sinon-min.js//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js主要.jsrequire(['myModule'],function(module){//usingsin

javascript - 如何使用 thunk 操作对 mapDispatchToProps 进行单元测试

我有以下ReduxAction创建器:exportconstkeyDown=key=>(dispatch,getState)=>{const{modifier}=getState().data;dispatch({type:KEYDOWN,key});returnhandle(modifier,key);//Returnstrueorfalse};以及以下连通分量:exportconstmapDispatchToProps=dispatch=>({onKeyDown:e=>{if(e.target.tagName==="INPUT")return;consthandledKey=dis

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 - 使用 Enzyme 测试 React 组件中 <iframe> 的内容

我编写了一个简单的React组件来呈现:exportclassIframeextendsReact.component{render(){return;}}我试图通过检查加载的内容src来测试它正确填充在中.为此,我尝试访问frame.contentWindow,但在用enzyme安装它之后它总是返回undefined.我试过模拟内容与诗浓FakeXMLHttpRequest:server=sinon.fakeServer.create();server.respondWith('GET','test',[200,{'Content-Type':'text/html'},'Amazin

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