草庐IT

sinon-chai

全部标签

javascript - Sinon - stub 模块功能并在没有依赖注入(inject)的情况下对其进行测试

我有一个代理模块,它将函数调用转发给服务。当调用此代理模块中的函数时,我想测试是否调用了服务函数。这是代理模块:constpayService=require('../services/pay')constwalletService=require('../services/wallet')constentity={chargeCard:payService.payByCardToken,//...someotherfn}module.exports=entity基于thisexample和thisresponse,我试图stub所需的模块“payService”:constexpec

javascript - chai 没有在 Karma-mocha 中定义

我正在使用mocha-phantomjs配置成功运行我的测试用例。现在我正在使用Karma启动器运行这些测试。但我遇到了问题Chaiisnotdefined。这是我的配置文件。module.exports=function(config){config.set({client:{mocha:{ui:'tdd'}},basePath:'',frameworks:['mocha'],files:['web/js/*.js','test/lib/*.js','node_modules/chai/chai.js'//addedthisonsuggestionoftheanswerinstack

javascript - 使用 Sinon/Mocha 正确 stub 请求/响应

我对后端单元测试比较陌生,需要一些关于如何对以下内容进行单元测试的指导。我正在使用Mocha/Should/Sinon。exports.get=function(req,res){if(req.query.example){returnres.status(200).json({success:true});}else{returnres.status(400).json({error:true});}} 最佳答案 您可以使用Sinon的spy和stub函数来测试您的代码,如下所示:const{spy,stub}=require('

javascript - Node : Testing with sinon and async/await

使用sinon和async/await运行此测试时遇到问题。这是我正在做的一个例子://infilefuncsasyncfunctionfuncA(id){leturl=getRoute53()+idreturnawaitfuncB(url);}asyncfunctionfuncB(url){//emptyfunction}和测试:letfuncs=require('./funcs');...//describeletstubRoute53=null;letstubFuncB=null;letroute53='https://sample-route53.com/'letid='123

javascript - 如何使用 mocha/chai/chai-as-promised 测试 ES7 异步函数

我有以下功能要测试://...constlocal=newWeakMap();exportdefaultclassUser{//...asyncpassword(password){if(!password)returnlocal.get(this).get('hash');//removethisforsecurityreasons!if(password.length现在我想用mocha测试这个函数,chai和chai-as-promised做这个测试用例:importchaifrom'chai';importchaiAsPromisedfrom'chai-as-promised'

javascript - 使用 Sinon stub get 方法

我正在尝试对具有属性的对象的get方法进行stub,工作正常:sinon.stub(input.model,'get');input.model.get.returns(10);但是考虑一下我们是否需要在对象中stub一些特定的属性,例如:input.model.get('yourValue')↪这怎么能stub?有什么想法吗? 最佳答案 stub.withArgs()应该做你想做的。参见http://sinonjs.org/docs/#stubs.sinon.stub(input.model,'get').withArgs('yo

javascript - sinon stub 不替换功能。

我尝试了一个虚拟模块并将其stub,但没有用。app.jsfunctionfoo(){returnrun_func()}functionrun_func(){return'1'}exports._test={foo:foo,run_func:run_func}测试.jsapp=require("./app.js")._testdescribe('test',function(){it('test',function(){vartest_stub=sinon.stub(app,'run_func').callsFake(function(){return'0'})test_stub.re

javascript - 我应该如何避免使用 Sinon.js stub 属性

我发现Sinon不允许您stub属性,只有方法。我想弄清楚如何处理/接受这个。我有以下代码:varPlayer={addPoints:function(points){this.score+=points;},score:0}varGame={setPlayers:function(players){this.players=players;},over:function(){returnthis.players.some(function(player){returnplayer.score>=100;});},}这是我写的一个测试:describe("Game",function(

javascript - 使用 Chai 检查数组中的所有元素

在使用Mocha和Chai进行测试时,我经常需要测试数组中的所有元素是否都满足条件。目前我正在使用如下内容:varpredicate=function(el){returnelinstanceofNumber;};it('Shouldbeanarrayofnumbers',function(){varsuccess,a=[1,2,3];success=a.every(predicate);expect(success).to.equal(true);});浏览docs,我无法立即看到任何提供这种行为的东西。我是否遗漏了什么,或者我必须编写一个插件来扩展chai吗?

javascript - Sinon 似乎没有监视事件处理程序回调

我正在使用Jasmin、Simon和jasmin-simon测试主干View。代码如下:varMessageContainerView=Backbone.View.extend({id:'messages',initialize:function(){this.collection.bind('add',this.addMessage,this);},render:function(event){this.collection.each(this.addMessage);returnthis;},addMessage:function(message){console.log('add