Chaiでオブジェクトのキーが存在するかチェックする方法


chaiとは

chaiとは、アサーションライブラリのこと。
JavaScriptのテストフレームワークであるmochaのように、アサーションの機能がない場合にchaiなどのアサーションライブラリを使用する。
chaiのインストールもnpmを使ってできる。

オブジェクトにキーが存在するかチェックする方法

chaiでオブジェクトにキーが存在するかチェックするためのassertを5つまとめておく。

.hasAllKeys
指定されたキーだけが全て存在するかチェックする。
.doesNotHaveAnyKeys
.hasAllKeysの否定。

.hasAnyKeys
指定されたキーの内、少なくとも1つ存在するかチェックする。
.doesNotHaveAllKeys
.hasAnyKeysの否定。

.containsAllKeys
指定されたキーが全て含まれているかチェックする。

ここで、.hasAllKeysは指定されたキーに対してオブジェクトに存在するキーが多くても少なくてもダメだが、.containsAllKeysは指定されたキー以外のキーが含まれる(指定さえれたキーより多くキーが存在する)可能性がある。

それぞれの基本的な書き方は、同じで以下のようになる。

// 基本的な書き方
asseert.hasAllKeys(<オブジェクト>,<チェックしたいキーの配列>)

//例
const obj = {
    id: 1,
    class:1,
    name: ryota,
};

asseert.hasAllKeys(obj,["id", "class", "name"]);

参考

https://www.chaijs.com/api/assert/