我正在用mocha测试一个模块,场景是一个小类,它有方法,有一个必需的回调参数。
当我在第一个describe上运行测试时,它得到了预期的结果,当它在第二个和第三个describebeforeEachafterEach上运行时,类实际上创建了一个新的redis客户端,并在它应该结束时调用end()

client.hget('profile:1','name',function(error,profileID){ /* <= profileID value is QUEUED */
 console.log(profileID); //<= QUEUED
 });

为什么回调将QUEUED作为其参数的值?它不会抛出任何错误。

最佳答案

尝试添加

if (error) console.log(error);

或者更适合调试:
client.hget('profile:1','name',redis.print);

redis不会抛出异常,除非你告诉它,否则我已经解释了这些异常会杀死进程。
这取决于您的代码,但您可能需要等待connectidle事件
类似于:
client.on("idle",function(){
//Your code here
});

07-24 17:06