And*_*er2 21 mocha.js node.js 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'
Run Code Online (Sandbox Code Playgroud)
来源:
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
Run Code Online (Sandbox Code Playgroud)
但这不起作用(尝试连接到提供的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'
Run Code Online (Sandbox Code Playgroud)
来源:
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
Run Code Online (Sandbox Code Playgroud)
哪个是为request呼叫创建存根的正确方法?哪个方法要被存根?
如果仍然有人在寻找答案,那么您似乎可以使用sinon创建一个存根来请求:
before(function(done){
sinon
.stub(request, 'get')
.yields(null, null, JSON.stringify({login: "bulkan"}));
done();
});
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到
| 归档时间: |
|
| 查看次数: |
17112 次 |
| 最近记录: |