我正在为node-redis 模块编写一个模拟并使用Jasmine对其进行测试。我为 Redis 命令的各个方面编写测试,我的目的是也能够针对原始 Redis 模块运行测试。
我的问题是:如果我对node-redis的理解正确的话,node-redis的异步函数的返回值是不同的,具体取决于命令是发送到redis还是排队等待稍后发送(例如连接完成后发送) )。但我也想测试返回的值,如果我编写如下测试:
it("should update value", function () {
var client = redis.createClient();
client.set("key", "1st");
var value = client.get("key", function (err, data) {
expect(err).toBeNull();
expect(data).toBe("1st");
});
expect(value).toBe(true);
});
如果我使用真正的 Redis 模块,它不会通过,因为没有足够的时间连接到数据库。
有没有办法等待异步请求被执行以继续测试代码?
(也欢迎使用不同方法解决此问题的答案。)