簡體   English   中英

node.js mocha測試請求

[英]node.js mocha test request

我正在使用mocha.js和supertest.js來測試我的json服務器對express.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 {}

摩卡測試剛剛超時。 我猜這與查找異步並且測試不等待它完成的事實有關。 我該如何解決這個問題?

嘗試增加超時:

mocha --timeout 5000

默認值為2000毫秒,可能太短。 文檔中

切換到https://github.com/mikeal/request/解決了它。 我現在正在做

這是我現在的考試:

describe 'GET /user/:id', ->
  it 'should return the user data if user found', (done) ->
    request.get(
      'http://localhost:31000/user/500d365abb75e67d0c000006'  
      , (err, res, body) ->
        json = JSON.parse body
        assert.equal(res.statusCode, 200)
        assert.equal(json._id, '500d365abb75e67d0c000006')
        done()
    )

現在一切都按預期工作,但我仍然想知道是否可以使用超級或誓言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM