草庐IT

sinon-chai

全部标签

javascript - 使用 Mocha 和 Chai 捕获超出范围的错误

我正在修改node.js库以支持真正的异步操作。我在使用Mocha和Chai时遇到了麻烦,无法通过这个(类似的)测试。it('shouldthrowanerror',function(){expect(function(){process.nextTick(function(){thrownewError('Thisismyerror');});}).to.throw(Error);});问题是-由于nextTick-错误被抛出it的范围,除了测试失败之外,Mocha还输出以下内容。UncaughtError:Thisismyerror为了使其成功,构建此测试的正确方法是什么?

javascript - 使用 Puppeteer、Mocha 和 Chai 断言 html 标签属性中存在文本

我正在开始使用这些技术(包括Javascript)的旅程,所以,这是一个初学者问题。我正在努力弄清楚如何断言HTML属性中的给定文本符合预期。HTML片段:到目前为止,这是我的.it函数,使用Mochai、Puppeteer和Chai(为清楚起见省略了设置和拆卸:it('optoutofemail',asyncfunction(){awaitpage.setDefaultNavigationTimeout();awaitpage.waitForSelector('.widget-title');constframe=page.frames().find(frame=>frame.nam

javascript - 带有 sinon 返回函数的 stub 函数?

我想进行单元测试并覆盖我的代码,这是我的代码,如何用sinon覆盖createClient?constclient=redis.createClient({retry_strategy:function(options){if(options.error){if(options.error.code==='ECONNREFUSED'){returnnewError('Theserverrefusedtheconnection');}if(options.error.code==='ECONNRESET'){returnnewError('Theserverresettheconnect

javascript - 用 Sinon 模拟 Redis 构造函数

我想找出一种在这个模块中模拟redis的方法:constRedis=require('ioredis');constmyFunction={exists:(thingToCheck){letredis_client=newRedis(6379,process.env.REDIS_URL,{connectTimeout:75,dropBufferSupport:true,retryStrategy:functionHere});redis_client.exists(thingToCheck,function(err,resp){//handlingsinhere});}};使用这个测试

javascript - 重置 "called"依靠 Sinon Spy

如何在每次测试前重置Sinonspy的“调用”计数?这是我现在正在做的:beforeEach(function(){this.spied=sinon.spy(Obj.prototype,'spiedMethod');});afterEach(function(){Obj.prototype.spiedMethod.restore();this.spied.reset();});但是当我在测试中检查调用计数时:it('callsthemethodonce',function(){$.publish('event:trigger');expect(this.spied).to.have.b

javascript - 如何使用 sinon stub new Date()?

我想验证各种日期字段是否已正确更新,但我不想在预测newDate()何时被调用时乱七八糟。如何stubDate构造函数?importsinon=require('sinon');importshould=require('should');describe('tests',()=>{varsandbox;varnow=newDate();beforeEach(()=>{sandbox=sinon.sandbox.create();});afterEach(()=>{sandbox.restore();});varnow=newDate();it('setscreate_date',do

javascript - 按照 promise 用 Chai 测试拒绝

我想测试一个返回promise的函数。在这个特定的测试中,promise预计会被包含经典message字段的Error对象拒绝(在这个测试中,它应该等于"myerrormessage")和我添加的一个名为code的自定义字段,它是一个字符串(如“EACCESS”、“ERIGHT”等,在这个测试中它应该等于“EFOO”)我想为此使用chai-as-promised。returnexpect(foo()).to.eventually.be.rejectedWith("myerrormessage");此断言有效,但现在我也想测试code字段。如何做到这一点? 最

javascript - Chai:如何使用 'should' 语法测试未定义

基于this使用chai测试angularjs应用程序的教程,我想使用“应该”样式添加对未定义值的测试。这失败了:it('cannotplayoutsidetheboard',function(){scope.play(10).should.be.undefined;});出现错误“TypeError:无法读取未定义的‘should’属性”,但测试通过了“expect”风格:it('cannotplayoutsidetheboard',function(){chai.expect(scope.play(10)).to.be.undefined;});如何让它与“应该”一起工作?

javascript - 如何使用 Rollup.js 捆绑使用 Sinon.js 的测试?

我正在使用带有插件rollup-plugin-node-resolve和rollup-plugin-commonjs的Rollup.js来捆绑我使用Sinon.js的测试。当我尝试运行捆绑文件时,出现以下错误:Error:Dynamicrequiresarenotcurrentlysupportedbyrollup-plugin-commonjs是否有任何解决此错误的方法,或者我必须使用Webpack等其他工具? 最佳答案 Sinon.jsv1.x不适用于Rollup.js等捆绑程序。您应该升级到更新的版本(v2.x或更高版本)。

javascript - ES2016 类,Sinon Stub 构造函数

我正在尝试用sinon和es2016消除一个super调用,但我运气不佳。任何想法为什么这不起作用?运行Node6.2.2,这可能是其类/构造函数实现的问题。.babelrc文件:{"presets":["es2016"],"plugins":["transform-es2015-modules-commonjs","transform-async-to-generator"]}测试:importsinonfrom'sinon';classFoo{constructor(message){console.log(message)}}classBarextendsFoo{construc