0
我试图使用json模式来验证api的json。当使用ajv验证json模式时获取错误类型/值
我找到了ajv库,它似乎是node.js最流行的。
刚开的基础知识,我定义我的架构为
const viewSchema = {
"type": "object",
"properties":{
"title": {"type": "string"}
}
}
export default viewSchema;
我然后将其导入到我的验证
import Ajv from 'ajv';
import viewSchema from './viewSchema';
const ajv = Ajv({allErrors: true});
let validate = ajv.compile(viewSchema);
const validateView = viewJson => {
var isValid = validate(viewJson);
console.log('------ text',ajv.errorsText(), isValid)
if(isValid) return true;
return ajv.errorsText();
}
export default validateView;
,并使用摩卡(与摩卡奇诺)测试输出
describe('validate view',() => {
it('should error if title is not a string',() => {
console.log('-----------',validateView({"title":122}))
expect(validateView({"title":122}).errors).toContain('should be string');
});
});
遵循从ajv github page的指示我期望我的测试失败,因为类型要求d是一个字符串,我提供了一个数字。但是我从ajv.errorsText()
得到的响应是No Errors
,它应该提供一个错误。
似乎很简单,我做错了什么?
谢谢,主文件说,'如果执行console.log(ajv.errorsText())(有效!);'所以我与打算。 – pedalpete
是的,在它使用ajv.validate的情况下。需要在前面的示例中添加errorsText。 – esp