LoopbackJS寄存器模型用于单元测试

时间:2017-01-18 07:23:14

标签: javascript unit-testing loopbackjs

我想对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。

1 个答案:

答案 0 :(得分:2)

您需要从loopback-boot致电启动。

我认为最好在测试单元中要求server.js

使用此模式datasources.test.jsonpackage.json中的脚本进行测试配置文件,以便进行测试,如下所示:"test": "NODE_ENV=test ./node_modules/mocha/bin/mocha --recursive",

因此不再需要在单元测试中创建模型。