Erstellen eines Anfrage-Stubs mit Sinon in Mokka

Ich bin mit mocha zum testen einige Klassen und ich brauche zum erstellen einer stub von request Bibliothek.

Ich bin mit sinonund ich bin in der Lage, erstellen Sie einen stub, der request.get Methode, aber ich bin nicht in der Lage, erstellen Sie einen stub, der request - Methode (http-Aufrufe versuchen, eine Verbindung zu einem server). Als ich gelesen habe, request.get ist ein alias für request aber wenn ich stub request.get es hat keinen Einfluss auf request Anrufe.

Dieser code funktioniert (mit request.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

Aber das funktioniert nicht (versucht, eine Verbindung zu der angegebenen url):

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 erstellen Sie einen stub für request nennen? Das ist die Methode, die stubed?

InformationsquelleAutor der Frage Ander2 | 2013-11-18

Schreibe einen Kommentar