Erstellen eines Anforderungsstubs mit Sinon in Mokka

Ich benutzemocha um ein paar klassen zu testen und ich muss einen stub von erstellenrequest Bibliothek.

Ich benutzesinonund ich bin in der Lage, einen Stummel von der zu erstellenrequest.get Methode, aber ich bin nicht in der Lage, einen Stummel der zu erstellenrequest Methode (die http-Aufrufe versuchen, eine Verbindung zu einem Server herzustellen). Wie ich gelesen habe,request.get ist ein Alias ​​fürrequest aber wenn ich stumm binrequest.get es hat keine Auswirkung aufrequest Anrufe.

Dieser Code funktioniert (mitrequest.get):

In Tests:

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'

In der Quelle:

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

Dies funktioniert jedoch nicht (versucht, eine Verbindung zur angegebenen URL herzustellen):

In Tests:

request = require 'request'

describe "User test", ->
  user = {}
  before (done) ->
    user = new test.user('Ander', 18)    
    sinon.stub(request, 'Request').yields(null, {statusCode: 200}, 'foo')
    #Creating the stub this way, doesn't work neither
    #sinon.stub(request, 'get').yields(null, {statusCode: 200}, 'foo')
    done()
  after (done) ->
    request.Request.restore()
    done()
  it "testing server response", ->
    user.getData().should.equal 'ander'

In der Quelle:

request = require 'request'

class User
  contructor(@name, @age): ->
  getData: ->
    mydata = ''
    request '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

Welches ist der richtige Weg, um einen Stub für zu erstellenrequest Anruf? Welches ist die Methode, die gestubt werden soll?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage