- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
测试 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/
我正在查看 hapi 路由的一些身份验证配置选项。我了解范围的工作原理 - 您可以将路由的范围设置为 'admin'这意味着用户的凭据必须具有匹配的范围...但是 entity 的目的是什么? ? 以
我正在使用 lab 编写测试用例我想测试我的插件是否抛出异常。问题是,hapi 允许异常冒泡,同时还设置了对内部服务器错误 500 的响应,这导致我的测试失败。 我们可以测试这个响应 expect(r
在 express 中,我有这样的事情: router.get('/foo', middlewareFunction, function (req, res) { res.send('YoYo
此代码在版本 9.0.3 中不起作用: server.route({ method: 'GET', path: '/', handler: function() {
我在 Joi 验证方面遇到了一个问题(或者我认为是一个问题)。如果它作为请求正文的一部分传递,我正在尝试为不存在的键分配一个值。 例如: parameters: Joi.object().keys({
由于“Inert”插件现在必须单独加载。我想注册我的应用程序的路线。我有2个选择 1) 导出一个以“server”为参数的函数,并将代码编写为 module.exports = function(se
我应该如何使用 HapiJS 实现类似 PHP exec 的系统函数调用?用户提交一个需要在后台运行一段时间的处理作业。 我需要以某种方式向用户返回作业ID/ session ID,异步运行作业,允许
我有一个像这样的routes.js: server.route({ method: 'GET', path: '/marvel/universal/verify/{serial?}',
我执行一些循环时内存不足。我怀疑 HapiJS 正在某种受限模式下运行。 我的开发机器有 i7 和 8GB 内存,但在 Hapi 控制台中我从未看到 Hapi 使用超过 1GB。 如何确保 Hapi
我使用 Joi 库作为我的 CRA 项目的独立验证器,但在触发时 email()验证器我收到神秘错误 Uncaught Error: Built-in TLD list disabled 最佳答案 来
有没有办法访问全局注册的插件?我已阅读有关 hapi-sequelize 的内容,我想将其实现到我的 hapi 应用程序中。这是documentation 。它指出您可以使用以下代码全局访问它: va
所以我有 Hapi (v17.5.1),当我有我的插件数组时 [ { plugin: good, options: { reporters: { errorReporte
我觉得我缺少一些基本的东西,但我不知道如何在 HapiJS 中获得更好的控制台输出。 我正在编写一个 API,当出现错误时它会打印出来。 150516/063815.663, [response],
我对 Hapi 如何处理验证感到有点困惑,根据请求生命周期 ( http://hapijs.com/api#request-lifecycle ),参数/查询的验证仅在身份验证完成后发生。 这样做有意
我有一个返回结果的代码。通常,当我收到该结果时,我会将其发送给客户端,并在此过程中将其转换为纯 JSON 对象。 但现在我需要对该结果集进行一些操作,然后在数据库中进行另一次查找。 我不明白的是结果集
我目前正在使用 hapi,我遇到了一个问题,我似乎找不到任何解决方案或以前提到过。当我发送以下请求时,只有我的第一个查询参数在 request.query 对象中。 curl -H "Content-
我想验证一个字段并允许另一个字段而无需验证;通过示例只是为了验证:“名字”字段。在我的代码中,当我注释“有效载荷”时,hapi 允许我记录任何字段,当我取消注释“有效载荷”时,hapijs 不允许我记
我一直在研究 hapi.js 应用程序并具有以下架构: Database --Models --usermodel.js --anothermodel.js Routes --
有谁知道是什么意思? npm ERR! Test failed. See above for more details. 3 tests complete Test duration: 873 ms
在 hapi.js API 中,他们指定身份验证方案也可以将工件作为凭证对象的一部分返回。 究竟什么是身份验证工件,它们为什么有用?有没有一个很好的例子来说明为什么 hapi 团队将此作为其 API
我是一名优秀的程序员,十分优秀!