目次
- 背景
- toStrictEqualとは
- サンプルコード
背景
toStrictEqualをjestのdocumentで見て気になった為です。
toStrictEqualとは
- undefinedの要素が考慮されます
- [2]は[2, undefined]とは等しくないです。
- {a: undefined, b: 2}は{b: 2}とは等しくないです。
- 配列の疎密がチェックされます。例えば、[, 1]は[undefined, 1]とは等しくないです。
- オブジェクトの型がチェックされます。例えばフィールドaとbを持つクラス・インスタンスは、フィールドaとbを持つリテラル・オブジェクトとは等しくないです。
サンプルコード
こちらのリポジトリで確認可能です。
jest-strict-equal
StrictEqual.test.ts
class Class {
name: string;
constructor(name: string) {
this.name = name;
}
}
it("同一の確認", () => {
//値が同じなのでpass
expect(new Class("名前")).toEqual({ name: "名前" });
//型が違うのでfail
// expect(new Class("名前")).toStrictEqual({ name: "名前" });
expect([2]).toEqual([2, undefined]);
// undefinedの要素が考慮されるのでfail
// expect([2]).toStrictEqual([2, undefined]);
expect([, 2]).toEqual([undefined, 2]);
// undefinedの要素が考慮されるのでfail
// expect([, 2]).toStrictEqual([undefined, 2]);
});