我正在使用mocha
,通过gulp-jsx-coverage
和运行我的测试套件gulp-mocha
.我的所有测试都按预期运行并通过/失败.但是,我测试的一些模块通过superagent
库向我的API发出HTTP请求.
在开发中,我还在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)
我已经尝试在全局帮助器中对superagent
(别名为request
)库中的所有方法进行存根,如下所示:
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
错误.我已经三次检查了,我没有在哪里恢复沙箱或任何存根.
有没有办法解决我遇到的问题,或者整体上更清洁的解决方案?