4

我正在尝试测试我的某些数据库操作是否正确执行。流程如下(我用mocha进行测试)

  1. 调用循环数据并将其保存到redis的代码
  2. 从redis(在我的测试用例中)获取数据,看看它是否保存了正确的数据。

我注意到从 db 获取数据在保存任何内容之前就已经执行了很多。我正在查看 mocha 中的 done() 选项,但是这似乎只有在通过 mocha(设置等)保存数据时才有效。

那么我如何指示 mocha 在尝试从数据库中检索之前等待所有数据库被保存?

谢谢你的帮助

4

2 回答 2

3

丹科恩是正确的。这是您需要做的,更加充实:

describe('Your test', function () {
    before(function (done) {
        Your.redis.db.call.here(your, parameters, function (err) {
            ...you may want to check for errors first...
            done();
        });
    });

    it('should do what you wanted...', function (done) {
        ...your test case...
        done();
    });
});

您的 redis 调用很可能提供回调函数作为参数。该回调函数在 redis 调用完成时执行。在该回调函数中,调用done(). 您编写的数据将在您的整个测试过程中出现。

于 2013-06-15T05:40:11.873 回答
0

你只需要在 mocha 中使用 done 参数编写一个 before 函数来将数据加载到数据库中。作为加载数据时的回调,调用 done()。现在,您的所有数据都将在您的第一次测试之前加载。

于 2013-05-30T21:37:29.127 回答