Erstellen eines Anforderungsstubs mit Sinon in Mokka
Ich benutzemocha
um ein paar klassen zu testen und ich muss einen stub von erstellenrequest
Bibliothek.
Ich benutzesinon
und 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?