私はmocha.jsとsupertest.jsを使用して、express.jsでjsonサーバーのリクエストをテストしています。これらは私の輸入品です:
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 {}
モカテストがタイムアウトします。これは、検索が非同期であり、テストが完了するのを待たないという事実と関係があると思います。これを解決するにはどうすればよいですか?