Я хотел бы написать несколько юнит-тестов для сервисов перьев. Я хочу, чтобы этот тест выполнялся полностью независимо, что означает, что я не хочу использовать базу данных. Это пример фрагмента моего сервиса, который использует sequelize: src / services / messages / messages.service. js
// 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);
}
};
Возможно, я бы попытался смоделировать базу данных с библиотекой sequelize-test-helpers но я не уверен, как это будет работать в сочетании с перьями. Вот так выглядит мой текущий тест в машинописи для этого сервиса: SRC / тест / услуги / messages.test.ts
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 (...) ' показывает функциональность, которую должен иметь тест. Но проблема в том, что я не уверен, как написать этот тест, чтобы служба не использовала исходную базу данных. У кого-нибудь из вас есть идея, как я мог бы написать тест для сервиса перьев, не используя реальную базу данных? Заранее спасибо!