【发布时间】: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