使用mocha进行测试时,“done()多次调用”与restler的错误

时间:2013-07-30 17:31:54

标签: node.js coffeescript mocha

当我测试一个restler调用时,我得到一个多次调用的done()。如果我只让restler调用onece,则不会出错,但是如果我在一次测试运行中调用两次相同的方法,则会出错。

以下是测试的简化版本

myModule = require 'myModule'

describe 'foo', ->
    describe 'bar', ->
        it "should hi", (done) ->
            myModule.hi done
        it "should hi again", (done) ->
            myModule.hi done

这是myModule

rest = require 'restler'
exports.hi = (done) ->

    rest.get('http://google.com'
    ).on "complete", (data, response) ->
      console.log 'getting called once'             
      done null, data

我是否应该担心与restler的异步多次请求?导致此错误的原因是什么?

添加

控制台日志输出

  ◦ should hi: getting called once
  ✓ should hi (221ms)
  ◦ should hi again: getting called once
  1) should hi
 getting called once
  ✓ should hi again (211ms)

1 个答案:

答案 0 :(得分:1)

看起来这是一个问题,Restler没有更新为与节点0.10.x兼容

https://github.com/danwrong/restler/pull/113/files

Restler会多次调用回调函数,但是有一个pull请求可以解决问题。