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 為一個物件,其鍵滿足以下條件

  • username
    • 必要的字串
    • 僅包含字母數字字元
    • 必須至少有 3 個字元,最多 30 個字元
  • password
    • 必要的字串
    • 必須滿足自訂的正規表示式
  • access_token
    • 可選的字串或數字
  • birthyear
    • 必要介於 1900 和 2017 之間的整數
  • email
    • 必要的字串
  • 允許其他鍵(例如 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),
}`);