摩卡测试中的setTimeout不起作用

Kav*_*vin -1 asynchronous mocha.js node.js coffeescript

我正在使用类似以下的函数。我正在使用异步系列来测试异步功能。该系列中的第一个回调工作正常,并且在名为callThisGuy(client,callback)的第二个方法处都中断了

testFunction: () ->
  client = @
  ASync.series([
    (callback) ->
       client.createSingleClient(callback)
    (callback) ->
       client.callThisMethod(client, callback)
    (callback) ->
      trace "In the next step"
  ],
 (err, results) ->
     trace "Test"
 )
Run Code Online (Sandbox Code Playgroud)

这是callThisMethod函数

callThisMethod:(client, callback) ->
    if(client.status == "new")
        callback(null," ")
    else
        setTimeout ( ->
            client.callThisMethod(client, callback)
        ), 1000
Run Code Online (Sandbox Code Playgroud)

即使状态不是“新”,也永远不会调用setTimeout函数。相反,它跳到下一步。我在没有Mocha的情况下运行了相同的代码,然后超时工作正常。

在摩卡咖啡中,它不起作用。我还检查了setTimeout是否未定义。它已定义。我想知道我是否想念一些东西。

Wil*_*ver 5

如果我只能阅读coffeescript,我可以提供更多帮助。太丑了。:(

https://mochajs.org/#asynchronous-code

您需要为测试函数指定“完成”回调方法。Mocha使用您已经声明了回调参数这一事实来了解测试是否异步。