Создание запроса заглушки с sinon в мокко
я используюmocha
чтобы проверить некоторые классы, и мне нужно создать заглушкуrequest
библиотека.
я используюsinon
и я могу создать заглушкуrequest.get
метод, но я не могу создать заглушкуrequest
метод (HTTP-вызовы пытаются подключиться к серверу). Как я прочитал,request.get
это псевдоним дляrequest
но когда я заглушаюrequest.get
это не влияет наrequest
звонки.
Этот код работает (используя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", ->
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'
В источнике:
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
Какой правильный способ создать заглушку дляrequest
вызов? Какой метод нужно заглушить?