gpt4 book ai didi

testing - 使用 Lab 测试 HapiJS 插件的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-28 20:05:41 25 4
gpt4 key购买 nike

测试 HapiJS 插件的最佳方法是什么,例如添加路由和处理程序的插件。

因为我必须创建一个 Hapi.Server 实例来运行插件,我应该从应用程序的根目录为所有插件定义所有测试吗?

我应该设法在插件的本地测试中获取 Hapi.Server 的实例吗?

如果我选择第二个选项,我的服务器将注册所有插件,包括要测试的插件不依赖的插件。

解决这个问题的最佳方法是什么?

提前致谢。

最佳答案

如果您使用 Glue (我强烈推荐),您可以为要执行的每个测试(或测试组)创建一个 list 变量。 list 只需要包含正确执行该测试所需的插件。

并公开某种 init 函数来实际启动您的服务器。小例子:

import Lab = require("lab");
import Code = require('code');
import Path = require('path');
import Server = require('../path/to/init/server');
export const lab = Lab.script();
const it = lab.it;
const describe = lab.describe;

const config = {...};

const internals = {
manifest: {
connections: [
{
host: 'localhost',
port: 0
}
],
registrations: [
{
plugin: {
register: '../http_routes',
options: config
}
},
{
plugin: {
register: '../business_plugin',
options: config
}
}
]
},
composeOptions: {
relativeTo: 'some_path'
}
};

describe('business plugin', function () {

it('should do some business', function (done) {

Server.init(internals.manifest, internals.composeOptions, function (err, server) {
// run your tests here
});
});

});

初始化函数:

export const init = function (manifest: any, composeOptions: any, next: (err?: any, server?: Hapi.Server) => void) {
Glue.compose(manifest, composeOptions, function (err: any, server: Hapi.Server) {

if (err) {
return next(err);
}

server.start(function (err: any) {

return next(err, server);
});
});
};

关于testing - 使用 Lab 测试 HapiJS 插件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44199580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com