0

我正在用 mocha 测试一个模块,场景是一个有方法的小类,带有一个必需的回调参数。

当我在第一次运行测试时,describe它得到了预期的结果,当它在第二次和第三次运行时,describe该类实际上创建了一个新的 redis 客户端并在它应该结束时调用。beforeEachafterEachend()

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

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

4

2 回答 2

1

尝试添加

if (error) console.log(error);

或者更好的调试:

client.hget('profile:1','name',redis.print);

除非你告诉它,否则 Redis 不会抛出杀死进程的异常。

这取决于您的代码,但您可能需要等待connectoridle事件

就像是:

client.on("idle",function(){
//Your code here 
});
于 2013-09-21T15:26:30.833 回答
0

看起来,它需要大量调试才能最终发现,它创建redis客户端的脚本,关闭它们,并尝试发送命令,但客户端已经关闭。多数组参数中的 redis 命令也有一些小的语法错误(很难发现)

于 2013-09-21T21:37:48.970 回答