📝

【テスト】マッチャー(macher)って何❓

に公開

(公式)Matcherを使用する

toBe: 厳密な等価性をテスト

例えば、expect(2 + 2).toBe(4)は、2 + 2が4であることを確認

toEqual: オブジェクトや配列のすべてのフィールドを再帰的にチェックします。

厳密な等価性ではなく、値の等価性をテスト

例示
// sum.ts ファイルに以下の関数を定義
export const sum = (a: number, b: number): number => a + b;

// sum.test.ts ファイルに以下のテストケースを記述
import { sum } from './sum';

test('object assignment', () => {
  const data = { one: 1 };
  data['two'] = 2;
  expect(data).toEqual({ one: 1, two: 2 });
});

// sum.test.ts ファイルに以下のテストケースを記述
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3); // 基本的な数値の等価性テスト
});

test('object equality', () => {
  const obj1 = {
    name: 'John',
    age: 30,
    address: {
      city: 'New York',
      zip: '10001'
    }
  };

  const obj2 = {
    name: 'John',
    age: 30,
    address: {
      city: 'New York',
      zip: '10001'
    }
  };

  expect(obj1).toEqual(obj2); // オブジェクトの値の等価性をテスト
});

toMatch: 正規表現で文字列にマッチするかどうかを確認します。

例えば、expect('Christoph').toMatch(/stop/)は、文字列 ‘Christoph’ に “stop” が含まれていることを確認。

toContain: 配列や反復可能なオブジェクトに特定のアイテムが含まれているかどうかを確認します。

例えば、expect(shoppingList).toContain('milk')は、shoppingList 配列に ‘milk’ が含まれていることを確認

Discussion