【问题标题】:Loopback 4 empty database before a testLoopback 4 测试前的空数据库
【发布时间】:2023-03-04 18:05:01
【问题描述】:

我想在验收测试用例之前清空数据库。

在我的aircraft.controller.acceptance.ts 我有

import { givenEmptyDatabase } from './helpers/database.helpers';
...
before(givenEmptyDatabase);
...
describe( ... ) { ... }

database.helpers.ts我尽量按照LoopBack 4 documentation行事

import {AircraftRepository} from '../../src/repositories';
import {testdb} from '../fixtures/datasources/testdb.datasource';

export async function givenEmptyDatabase() {
  await new AircraftRepository(testdb).deleteAll();
}

但它从未描述过testdb.datasource.ts 应该是什么样子。我试图让它看起来与我的常规db.datasource.ts 相似,但我不确定要导出什么..

import {inject} from '@loopback/core';
import {juggler, AnyObject} from '@loopback/repository';
const config = require('./db.datasource.json');

export class DbDataSource extends juggler.DataSource {
  static dataSourceName = 'db';

  constructor(
    @inject('datasources.config.db', {optional: true})
    dsConfig: AnyObject = config
  ) {
    super(dsConfig);
  }
}

【问题讨论】:

  • 您是否尝试过使用lb4 datasource 命令创建一个名为testdb 的数据源?
  • 是的,我有。它将生成类似于我在第一篇文章中提出的最后一个数据源。我刚刚进入 LoopBack 并且无法弄清楚存储库作为构造函数需要什么类型的参数
  • 您现在如何进行测试以使用哪个数据库?我尝试执行 app.datasource(testdb) 但它不起作用,当我运行 npm test 时仍然尝试连接到原始 MySQL 数据库,请您发布您的完整代码。

标签: javascript loopback


【解决方案1】:

@loopback/repository 得到答复。 testdb.datasource.ts 应该如下所示:

import { juggler } from '@loopback/repository';

export const testdb: juggler.DataSource = new juggler.DataSource({
  name: 'db',
  connector: 'memory'
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
  • 2019-08-13
  • 2013-07-23
  • 2011-06-24
  • 1970-01-01
  • 2022-12-10
相关资源
最近更新 更多