Chai JSON 模式
使用清晰的 JSON 语法进行深度匹配对象。
简介
Chai JSON 模式允许您为 JavaScript 对象创建蓝图,以确保关键信息的验证。它使您能够使用 JSON 语法,并扩展易于使用的验证器。它主要用于使用 cucumber-js 测试 API,但可以用于任何应用程序。此外,您可以使用自定义验证器扩展基本功能。有关更多信息,请参阅 API 参考。
API
查看详细的API 参考。
示例
const pattern = `
{
"username": String AND alphanum AND minLength(3) AND maxLength(30),
"password": String AND regex("/^[0-9a-zA-Z]{5,30}$/"),
"access_token"?: String AND Number,
"birthyear": Integer AND range(1900, 2017),
"email": String,
...
}
`;
expect(user).to.matchPattern(pattern);
上面的模式要求user
是一个对象,其键满足以下条件
用户名
- 必需的字符串
- 仅包含字母数字字符
- 必须至少有 3 个字符,最多 30 个字符
密码
- 必需的字符串
- 必须满足自定义正则表达式
访问令牌
- 可选的字符串或数字
出生年份
- 1900 年至 2017 年之间的必需整数
电子邮件
- 必需的字符串
- 允许其他键(例如 createdAt、updateAt 等)
如果user
不满足模式,测试将不会通过,您将看到user
与模式之间的差异错误。
用法
用法是一个两步过程。首先,您必须安装chai-json-pattern
包。
npm run --save-dev chai-json-pattern
然后导入chaiJsonPattern
并使用matchPattern
import chai, { expect } from 'chai';
import chaiJsonPattern from 'chai-json-pattern';
chai.use(chaiJsonPattern);
expect({ a: 2 }).to.matchPattern(`{
"a": Number AND range(0, 5),
}`);