首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修改Joi对象中的现有键

如何修改Joi对象中的现有键
EN

Stack Overflow用户
提问于 2019-01-30 09:58:43
回答 1查看 2.4K关注 0票数 0

Joi验证不支持修改现有对象键。

我正在对父类和子类使用Joi验证。父级的验证是所有子级的基本验证,但每个子级都有特定的限制或附加字段。我希望能够只使用我的父Joi对象,并且能够修改现有的键以满足特定的限制。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//Declare base class with an array at most 10 elements
const parent = {
    myArray: Joi.array().max(10)
}
//Now declare child with minimum 1 array value
const child = parent.append({
    foo: Joi.string(),
    myArray: Joi.array().min(1).required()
})

上面的代码按预期工作-这意味着子对象不会保留应用于父对象的.limit(10)限制。但是,我希望它能做到这一点。我确信append在这里不是正确的函数,但我不确定如何做到这一点。我希望得到的子验证看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const child = {
    foo: Joi.string(),
    myArray: Joi.array().max(10).min(1).required()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-30 12:53:34

您是否尝试过:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const child = parent.append({
    foo: Joi.string(),
    myArray: parent.myArray.min(1).required()
});

刚刚尝试过:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const Joi = require('joi');

const parent = {
  x: Joi.array().max(10).required()
};

const child = Object.assign({}, parent, {
  x: parent.x.min(1).required(),
  y: Joi.string()
});

Joi.validate({
  x: [],
  y: 'abc'
}, child); // fails as .min(1) not satisfied

Joi.validate({
  x: [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
  y: 'abc'
}, child); // fails as .max(10) not satisfied

Joi.validate({
  x: [1],
  y: 'abc'
}, child); // OK

已在Nodev8.10.0上尝试使用新的npm i joi (软件包显示:"joi": "^14.3.1")。或者,也许你给出的例子太琐碎,不能反映你的真实场景?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54437782

复制
相关文章
使用Jest测试原生TypeScript项目
问题:我怎么才能收到你们公众号平台的推送文章呢? 最近写了一个wechat-colorpicker小项目。 主要是为了练习下TS。既然写了一个小库,我就想着顺便学下如何写测试吧,这是一件蛮有意思的事情。 从选型到搭建环境,前前后后用了近2个小时。不得不说一个合格的前端必然是一个合格的配置工程师。再次列举下,这个项目中所需要搭建配置的工具。 webpack.config 自动编译ts+css tsconfig.config ts的配置文件 tslint.json tslint的配置文件 jest.config
企鹅号小编
2018/02/09
2.9K0
使用Jest测试原生TypeScript项目
使用jest进行单元测试
不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告诉使用者,你的程序是多么鲁棒健壮;第二点,把它作为一种素养去培养吧,当你按照一系列规范去做事,那么你做出来的东西,我想是有品质在的。
江涛学编程
2020/08/25
3.6K0
使用jest进行单元测试
使用 Jest 进行前端单元测试
目前 Jest 已经在 Facebook 开源的 React, React Native 等前端项目中被做为标配测试框架。下面简单介绍一些 Jest 比较有用的功能和用法。
QQ音乐技术团队
2018/01/31
5.6K0
使用 Jest 进行前端单元测试
【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试
在JavaScript中执行异步代码是很常见的。当你有以异步方式运行的代码时,Jest 需要知道当前它测试的代码是否已完成,然后它可以转移到另一个测试。
WEBJ2EE
2020/10/09
1.4K0
【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试
【自动化测试】【Jest-Selenium】(01)—— Jest 入门
按照软件工程自底而上的概念,前端测试一般分为单元测试(Unit Testing )、集成测试(Integration Testing)和端到端测试(E2E Testing)。
WEBJ2EE
2020/09/24
1.9K0
vue单元测试-Jest
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
1.1K0
vue单元测试-Jest
前端单元测试之Jest
关于前端单元测试的好处自不必说,基础的介绍和知识可以参考之前的博客链接:React Native单元测试。在软件的测试领域,测试主要分为:单元测试、集成测试和功能测试。
xiangzhihong
2022/11/30
2.7K0
JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件
你或许早已经知道“单元测试”“端到端测试”这些名词,但从未真正付诸实践。在这一系列实战教程中,我们将手把手带你掌握 Jest、Enzyme、Cypress 等测试利器,帮助我们从 bug 的沼泽中挣脱出来,成为一个无往不利的高阶前端开发者!
一只图雀
2020/08/26
3K0
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
在技术术语中测试意味着检查我们的代码是否符合某些预期。例如:给定一些输入,一个名为“transformer”的函数应返回预期的输出。
疯狂的技术宅
2019/09/04
2.8K0
用 Jest 进行 JavaScript 测试[每日前端夜话0xB6]
Maven打包时跳过测试类
Maven打包时跳过测试类 在springboot项目中,默认会有Test测试类,如果执行maven打包命令,会运行测试类,而这是不必要 最简单的方法,在pom文件设置一个maven自带变量即可 <properties> <skipTests>true</skipTests> </properties>
4xx.me
2022/06/09
4350
Maven打包时跳过测试类
[ Jest ] 自动化测试 Jest 的使用总结基础篇
随着前端的发展,web的交互越来越复杂,自动化测试是非常有必要融入到开发的流程中,而目前界内普遍通用且比较火的就是有 facebook开发的 Jest 这套工具。他可以创建测试用例,执行测试,自身还有驱动和mock,且用起来也是很方便,正如 jest 的官网这样描述 jest,Jest is a delightful JavaScript Testing Framework with a focus on simplicity.
GavinUI
2021/08/23
2.8K0
[ Jest ] 自动化测试 Jest 的使用总结基础篇
初尝 Jest 单元测试
最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发和测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。那这时候问题来
IMWeb前端团队
2017/12/29
1.8K0
初尝 Jest 单元测试
node.js测试jest入门
全局安装测试工具 jest npm install jest -g 创建hellow.js功能文件,导出功能函数 //hellow.js //功能:创建一个变量,变量值是hellow const hellow='hellow tom'; module.exports= hellow; 功能文件同级目录创建test文件夹,创建index.spec.js文件 //index.spec.js //测试文件,测试功能文件功能 test('测试 hellow.js',()=>{ const result=requ
刘嘿哈
2022/10/25
9780
【自动化测试】【Jest-Selenium】(02)—— Jest 匹配器
Use .toBe to compare primitive values or to check referential identity of object instances. It calls Object.is to compare values, which is even better for testing than === strict equality operator.
WEBJ2EE
2020/10/09
8270
Jest实战:单元测试与服务测试
一名好的大前端开发人员,一定是一名好的“配置工程师”(滑稽脸)。而最近刚到团队,被安排给 vemoJS 和 cloudbase-cli 写测试用例,并且要保证覆盖率!
心谭博客
2020/04/21
3.4K0
ES6 类的使用(class)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107475.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/21
2260
初尝 Jest 单元测试
最近的几次发布都犯了小错,都是缺乏或者忽视了测试所导致的。通常来说,一个新功能上线的时候,开发和测试都投入比较多,各项测试都是比较全面的。然而,发布上线也并非意味着不再有bug或者修改。那这时候问题来了,有些修改, 我们会以为很简单,从而放松警惕,偷懒也罢,没有精力也罢,简单验证之后便匆匆发布了。此时,有可能不经意的改动对其它功能造成了影响,bug复bug, bug何其多呀。
IMWeb前端团队
2019/12/04
1.6K0
使用Jest测试包含setTimeout调用的函数踩坑记录
前两天给一个包含setTimeout调用的函数写单元测试,在使用fake timer的时候遇到了问题,记录一下。
雪之下Perqin
2021/08/26
7K0
react生态下jest单元测试
注意:这里我们使用cnpm去安装速度会更快,npm速度会很慢! a.建议使用npm install –g jest(不需要单个去安装依赖),修改package.json文件即可。
懿曲折扇情
2022/08/24
2.3K0
react生态下jest单元测试
点击加载更多

相似问题

Jest -测试ES6类

12

使用jest问题测试ES6类方法

16

Jest错误:调用方法时测试ES6类调用

110

模拟被测试类要使用的ES6类的Jest

13

使用Jest模拟Es6类

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文