测试前如何清理服务状态?

时间:2019-07-09 10:13:16

标签: node.js mongoose feathersjs

我正在为基于猫鼬的简单服务编写测试:

describe('users service', () => {
    const service = app.service('users');

    it('registered the service', () => {
        assert.ok(service, 'Registered the service');
    });
});

问题是,如何在每次测试之前清除数据?

现在我有:

// Reset service state before each test.
beforeEach((done) => {
    service.find().then((items) => {
        items.data.forEach((item) => {
            service.remove(item._id)
        });

        done();
    })
});

这很尴尬。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

使用最新的适配器版本,您还可以临时设置multi选项以允许删除所有条目并调用.remove(null)

// Reset service state before each test.
beforeEach(async () => {
  const multi = service.options.multi;
  service.options.multi = 'remove';

  await service.remove(null);

  service.options.multi = multi;
});

这还将等到所有内容都删除(您的示例不会删除)。