【发布时间】:2018-01-22 00:49:43
【问题描述】:
我正在尝试使用 json 模式来验证 api 的 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;
并使用 mocha (with mochaccino) 测试输出
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 的指示,我希望我的测试会失败,因为所需的类型是字符串并且我提供了一个数字。但是我从ajv.errorsText() 得到的响应是No Errors,它应该提供一个错误。
看起来很简单,我做错了什么?
【问题讨论】:
标签: json jsonschema ajv