Javascript 单元测试的LoopbackJS寄存器模型

Javascript 单元测试的LoopbackJS寄存器模型,javascript,unit-testing,loopbackjs,Javascript,Unit Testing,Loopbackjs,我想对mixin进行单元测试。 所以我需要完全用代码创建一个环回3.x应用程序。 到目前为止,它还可以注册我的mixin,但它没有注册我的模型。 它并没有过度暴露,但这正是我所需要的 这是我的密码: // create loopback app app = loopback(); app.use(loopback.rest()); // create data source app.dataSource('db', { name: 'db', connector: loopb

我想对mixin进行单元测试。 所以我需要完全用代码创建一个环回3.x应用程序。 到目前为止,它还可以注册我的mixin,但它没有注册我的模型。 它并没有过度暴露,但这正是我所需要的

这是我的密码:

// 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模型,但它不适合我的需要,所以我需要实现自己的访问检查。

您需要从
环回启动调用boot

我认为最好在测试单元中使用
server.js

并在此模式下为测试创建配置文件
datasources.test.json
,并在
package.json
中为测试创建脚本:
“test”:“NODE_ENV=test./NODE_modules/mocha/bin/mocha--recursive”


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

我认为,仅仅为了测试一个简单的mixin而包含一个完整的环回项目是相当大的开销。我想为这个mixin创建一个npm包,这样我就可以在多个环回应用程序中重用它。@blacksheep_2011您说过要创建服务器并通过rest公开。所以这不是单元测试。我认为最好加载完整的项目进行集成/验收测试。你完全正确,因为我启动了一台服务器,这是集成测试。我将以这种方式尝试,并尽可能减少开销。谢谢你的帮助help@blacksheep_2011不客气。如果我的回答是正确的,请接受。