Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在mocha中创建带有sinon的请求存根大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用摩卡测试一些类,我需要创建一个存根请求库.

我使用sinon,我可以创建一个请求方法的存根,但是我无法创建一个请求方法的存根(http调用尝试连接到服务器).正如我所看到的,request.get是一个请求的别名,但是当我存根request.get它对请求调用没有影响.

代码工作(使用request.get):

在测试中:

request = require 'request'

describe "User test",->
  user = {}
  before (donE) ->
    user = new test.user('Ander',18)    
    sinon.stub(request,'get').yields(null,{statusCode: 200},'foo')        
    done()
  after (donE) ->
    request.get.restore()
    done()
  it "tesTing server response",->
    user.getData().should.equal 'ander'

来源:

request = require 'request'

class User
  contructor(@name,@agE): ->
  getData: ->
    mydata = ''
    request.get 'http://127.0.0.1:8080/',(err,response,body) ->        
      if not err and response.statusCode == 200
        mydata = body
      else
        err = throw new Error "Errorea"
    mydata

但是这不起作用(尝试连接到提供的url):

在测试中:

request = require 'request'

describe "User test",'request').yields(null,'foo')
    #CreaTing the stub this way,doesn't work neither
    #sinon.stub(request,'foo')
    done()
  after (donE) ->
    request.request.restore()
    done()
  it "tesTing server response",@agE): ->
  getData: ->
    mydata = ''
    request 'http://127.0.0.1:8080/',body) ->        
      if not err and response.statusCode == 200
        mydata = body
      else
        err = throw new Error "Errorea"
    mydata

创建请求呼叫存根的正确方法是什么?哪种方法被扼杀?

解决方法

然请求是一个很好的库,但它不是一个很好的结构化API的例子.并且因为模块请求被定义为具有附加方法(类似于express)的函数,因为我知道你不能使用sinon为函数请求创建存根.

你可以做的最好的事情是避免在你的代码中使用request函数,并且只使request.get,request.post等,你可以轻松地存根.

在第二个示例中为“请求”创建存根不能帮助,因为请求不是一种方法,请参阅source code.

大佬总结

以上是大佬教程为你收集整理的node.js – 在mocha中创建带有sinon的请求存根全部内容,希望文章能够帮你解决node.js – 在mocha中创建带有sinon的请求存根所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。