我想对mixin进行单元测试。 所以我需要在代码中完全创建一个loopback 3.x应用程序。 它到目前为止工作,它注册我的mixin,但它没有注册我的模型。 它不是通过REST公开的,但这正是我所需要的。
这是我的代码:
// create loopback app
app = loopback();
app.use(loopback.rest());
// create data source
app.dataSource('db', {
name: 'db',
connector: loopback.Memory
});
app.loopback.modelBuilder.mixins.define('accesscheck', AccessCheck);
app.loopback.createModel({
name: 'AccesscheckTest',
plural: 'AccesscheckTests',
base: "PersistedModel",
accesscheck: [{
permission: "ALLOW",
roles: [
'admin'
],
accessScope: "organization",
method: "findById"
}],
mixins: [
"accesscheck"
]
});
var Accesscheck = app.loopback.getModel('Accesscheck');
app.model(Accesscheck, { dataSource: 'db', public: true });
// start server
var connection = app.listen(3000, () => {
if (done) {
done();
}
});
app.activeConnection = connection;
return app;
PS:我知道在环回中存在ACL模型,但它不符合我的需要,所以我需要实现自己的Accesscheck。
答案 0 :(得分:2)
您需要从loopback-boot
致电启动。
我认为最好在测试单元中要求server.js
。
使用此模式datasources.test.json
和package.json
中的脚本进行测试配置文件,以便进行测试,如下所示:"test": "NODE_ENV=test ./node_modules/mocha/bin/mocha --recursive",
因此不再需要在单元测试中创建模型。