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