我正在测试一个带有mocha的模块,该场景是一个小类,它有方法,带有必需的回调参数。
当我在第一个describe
上运行测试时,它会获得预期结果,当它在第二个和第三个describe
,beforeEach
和afterEach
上运行时创建一个新的redis客户端,并在它应该结束时调用end()
。
client.hget('profile:1','name',function(error,profileID){ /* <= profileID value is QUEUED */
console.log(profileID); //<= QUEUED
});
为什么回调会将QUEUED
作为其参数的值?它没有任何错误..
答案 0 :(得分:1)
尝试添加
if (error) console.log(error);
或更好的调试:
client.hget('profile:1','name',redis.print);
除非你告诉我,否则Redis不会抛出杀死进程的异常,除非你告诉它。
这取决于您的代码,但您可能需要等待connect
或idle
事件
类似的东西:
client.on("idle",function(){
//Your code here
});
答案 1 :(得分:0)
看起来,最终需要进行大量的调试,它创建的脚本是redis客户端,关闭它们,并尝试发送命令,但客户端已经关闭了。在多数组参数(难以发现)中的redis命令中也有一些次要的语法错误