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