我正在使用mocha.js和supertest.js來測試我的json服務器對express.js的請求。這是我進口:node.js摩卡測試請求
request = require('supertest')
assert = require('assert') # Node assert
app = require('../app') # Vanilla express app
這是我在明確應用要求執行:
app.get '/user/:id', (req, res) ->
res.json {}
,這是我的測試:
describe 'GET /user/:id', ->
it 'should return the user data if user found', (done) ->
request(app)
.get("/user/some_id")
.end((err, res) ->
assert.equal('test', 'test')
done()
)
這工作,但如果我改變我要求:
app.get '/user/:id', (req, res) ->
User.findById req.param('id'), (err, doc) ->
res.json {}
摩卡測試只是超時。我猜這與查找是異步的事實有關,測試不會等待它完成。我該如何解決這個問題?
我正在使用mikeal/request並且它不工作= [ – ThomasReggi 2014-01-18 22:26:23
需要'done();'request內部=] – ThomasReggi 2014-01-18 22:27:58