当我测试一个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)

最佳答案

看起来这是Restler无法更新为与节点0.10.x兼容的问题

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

Restler将多次调用该回调,但是存在一个拉出请求可以解决该问题。

关于node.js - 用 Mocha 测试时,reSTLer的“done()被多次调用”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17953585/

10-12 02:27