La création de la demande de stub avec sinon à moka

Je suis en utilisant mocha pour tester certaines classes et j'ai besoin de créer un talon de request de la bibliothèque.

Je suis en utilisant sinon, et je suis en mesure de créer un stub de la request.get méthode, mais je ne suis pas en mesure de créer un stub de la request méthode (l'appel http essayez de vous connecter à un serveur). Comme je l'ai lu, request.get est un alias pour request mais quand je stub request.get il n'a pas d'effet sur request appels.

Ce code fonctionne (à l'aide de request.get):

Dans les 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'

Dans la source:

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

Mais cela ne fonctionne pas (essaie de se connecter à l'url fournie):

Dans les 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'

Dans la source:

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

Qui est la bonne façon de créer un stub pour request appel? Qui est la méthode à stubed?

InformationsquelleAutor Ander2 | 2013-11-18