首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用数据库的情况下用羽毛编写服务单元测试

在不使用数据库的情况下用羽毛编写服务单元测试
EN

Stack Overflow用户
提问于 2020-01-12 13:57:21
回答 1查看 1K关注 0票数 2

我想为羽毛服务编写一些单元测试。

我希望这个测试完全独立运行,这意味着我不想使用数据库。

这是我的服务的一个示例片段,它使用sequelize:

src/services/messages/messages.service.js

代码语言:javascript
复制
// Initializes the `messages` service on path `/messages`
const createService = require('feathers-sequelize');
const createModel = require('../../models/messages.model');
const hooks = require('./messages.hooks');
const filters = require('./messages.filter');

module.exports = function (app) {
  const app = this;
  const Model = createModel(app);
  const paginate = app.get('paginate');
  const options = {
    name: 'messages',
    Model,
    paginate
  };

  // Initialize our service with any options it requires
  app.use('/messages', createService(options));

  // Get our initialized service so that we can register hooks
  const service = app.service('messages');

  service.hooks(hooks);

  if (service.filter) {
    service.filter(filters);
  }
};

我可能会尝试用库后缀-测试帮手来模拟数据库,但我不确定这将如何与羽毛一起工作。

以下是我当前在此服务的类型记录中的测试结果:

src/test/services/messages.test.ts

代码语言:javascript
复制
import assert from 'assert';
import { app } from '../../src/app';

describe('\'messages\' service', () => {

  before(() => {
  // maybe add an entry to the mocked database
  });

  after(() => {
  // maybe delete that entry
  });

  it('registered the service', () => {
    const service = app.service('messages');

    assert.ok(service, 'Registered the service');
  });

  it('returns a single record', async () => {
    // get result with id 1 (maybe added item in before-hook)
    const res = await service.get(1);
    should().exist(res);
    res.should.be.a('object');
    // more checks...
  });
});

第一个‘it(.)’是由羽毛本身生成的,第二个‘it(.)’显示了我希望测试具有的功能。

但问题是,我不知道如何编写这个测试,这样服务就不会使用原始数据库。

你们中有人知道我如何在不使用实际数据库的情况下为羽毛服务编写测试吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-08-29 22:34:56

将环境设置为测试,并在配置中设置test.json上的数据库。如图所示:https://docs.feathersjs.com/guides/basics/testing.html#test-database-setup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59704537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档