大佬教程收集整理的这篇文章主要介绍了javascript – Mocha测试套件尝试连接到API时出错,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在开发过程中,我还在本地客户端应用程序旁边的localhost:3000上运行我的API,这就是我的客户端测试正在尝试访问的URl.测试时,API通常不会运行.这可能会导致以下错误:
Error in plugin 'gulp-mocha' message: connect ECONNREFUSED Details: code: ECONNREFUSED errno: ECONNREFUSED syscall: connect domainEmitter: [object Object] domain: [object Object] domainThrown: false Stack: Error: connect ECONNREFUSED at exports._errnoException (util.js:746:11) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19)
我尝试在全局帮助器中的所有超级代理(别名为请求)库中存储所有方法,如下所示:
function httpstub() { return { withCredentials: () => { return { end: () => {} }; } }; }; beforeEach(function() { global.sandbox = sinon.sandbox.create(); global.getstub = global.sandbox.stub(request,'get',httpstub); global.putstub = global.sandbox.stub(request,'put',httpstub); global.patchstub = global.sandbox.stub(request,'patch',httpstub); global.poststub = global.sandbox.stub(request,'post',httpstub); global.delstub = global.sandbox.stub(request,'del',httpstub); }); afterEach(function() { global.sandbox.restore(); });
但是由于某些原因,当遇到一些测试时,方法不会被隐藏,所以我遇到了ECONNREFUSED错误.我已经三重检查,没有我在哪里恢复沙箱或任何存根.
有没有办法解决我遇到的问题,或者是整体上更清洁的解决方案?
it('is BAD asynchronous test',() => { do_something() do_something_else() return do_something_async(/* callBACk */ () => { problematic_call() }) })
当Mocha发现这样的测试时,它会同步执行do_something,do_something_else和do_something_async.在那一刻,从Mochas的角度来看,测试结束了,Mocha执行afterEach()(这是坏的,问题的还有待调用!)和(甚至更糟),它开始运行下一个测试!
现在显然,以并行方式运行测试(和beforeEach和afterEach)可能会导致真正奇怪和不可预知的结果,所以毫不奇怪的是,有一些错误(可能在每次被调用在一些测试之后,导致解开环境)
该怎么办?
当您的测试结束时,始终向Mocha发出信号.这可以通过返回一个Promise对象,或者通过调用done回调来完成:
it('is BAD asynchronous test',(donE) => { do_something() do_something_else() return do_something_async(/* callBACk */ () => { problematic_call() done() }) })
这样,摩卡“知道”当你的测试结束,只有在它运行下一个测试.
以上是大佬教程为你收集整理的javascript – Mocha测试套件尝试连接到API时出错全部内容,希望文章能够帮你解决javascript – Mocha测试套件尝试连接到API时出错所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。