Loopbackjs 如何编写环回数据源的单元测试
我希望在我的Loopback4项目中为我的mongodb数据源编写单元测试,但是我找不到任何示例 以下是我的数据源:Loopbackjs 如何编写环回数据源的单元测试,loopbackjs,loopback4,Loopbackjs,Loopback4,我希望在我的Loopback4项目中为我的mongodb数据源编写单元测试,但是我找不到任何示例 以下是我的数据源: import {inject, lifeCycleObserver, LifeCycleObserver} from '@loopback/core'; import {juggler} from '@loopback/repository'; const arrayStr: string[] = []; const config = { name: 'mongodb',
import {inject, lifeCycleObserver, LifeCycleObserver} from '@loopback/core';
import {juggler} from '@loopback/repository';
const arrayStr: string[] = [];
const config = {
name: 'mongodb',
connector: 'mongodb',
// url: '',
host: 'localhost',
port: 27017,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
authSource: 'admin',
database: 'testdb',
ssl: false, // default to false
sslValidate: false, // default to false
useNewUrlParser: true,
allowExtendedOperators: true,
sslCA: arrayStr,
};
// Observe application's life cycle to disconnect the datasource when
// application is stopped. This allows the application to be shut down
// gracefully. The `stop()` method is inherited from `juggler.DataSource`.
// Learn more at https://loopback.io/doc/en/lb4/Life-cycle.html
@lifeCycleObserver('datasource')
export class MongodbDataSource extends juggler.DataSource
implements LifeCycleObserver {
static dataSourceName = 'mongodb';
static readonly defaultConfig = config;
constructor(
@inject('datasources.config.mongodb', {optional: true})
dsConfig: object = config,
) {
super(dsConfig);
}
}
我尝试过编写一个基本的构造函数测试:
import {MongodbDataSource} from '../../../datasources';
import {expect} from '@loopback/testlab';
describe('MongoDB Datasource (unit)', () => {
// we recommend to group tests by method names
describe('consturctor()', () => {
it('basic constructor', () => {
const ds = new MongodbDataSource();
expect(ds.name).to.equal('mongodb'); // default name
});
});
});
但是,测试将挂起/停止且未完成。感谢您的建议。当您创建一个新的数据源时,底层连接器(在您的情况下)将立即开始连接到数据库的过程,并将创建一个连接池。测试完成后,此池中打开的连接将阻止Node.js退出
个人认为,这是环回连接器实现中的一个错误,但是事情是这样的:P>当您创建一个新的数据源时,底层连接器(在您的情况下)将立即启动连接到数据库的过程,并将创建一个连接池。测试完成后,此池中打开的连接将阻止Node.js退出
个人,我认为这是环回连接器实现中的一个错误,但是这就是事情的原因,谢谢@ MiSravac选项3对我来说是有效的,尝试的选项2覆盖了一个没有参数的默认构造函数,但是它没有工作。谢谢@ MyRoSavr选项3对我来说是有用的,尝试使用选项2覆盖没有参数的默认构造函数,但它不起作用