Chai JSON 模式

使用清晰的 JSON 语法进行深度匹配对象。

CircleCI

简介

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),
}`);