0
0

Jest toEqualとtoStrictEqualの違いについて理解する

Posted at

目次

  1. 背景
  2. toStrictEqualとは
  3. サンプルコード

背景

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]);
});

参考

参考になる記事を書いてくださった皆様に感謝致します

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0