0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[JavaScript] [Jest] インスタンスを用いたテストコード

Last updated at Posted at 2024-08-20

環境

MacBook Pro (2.3 GHz 8コアIntel Core i9)
macOS 14.0(23A344)
Homebrew 4.3.8
gh 2.52.0

活用例1

テスト対象クラス

  • クラス: Person
  • プロパティ: name(名前を格納する文字列)、age(年齢を格納する数値)
  • メソッド: greet()(挨拶のメッセージを返す)
person.ts
class Person {
    constructor(public name: string, public age: number) {}

    greet(): string {
        return `Hello, my name is ${this.name} and I am ${this.age} years old.`;
    }
}

または(上記は可読性が高い、下記は冗長とされる)

person.ts
class Person {
    public name: string;
    public age: number;

    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
}

テストコード

  • インスタンス: personPersonクラスのインスタンス)
  • 生成されたオブジェクト: Personクラスのインスタンス(nameプロパティが「Alice」、ageプロパティが「30」となっている。)
person.test.ts
import { Person } from './person';

describe('Person Class', () => {
    let person: Person;

    beforeEach(() => {
        // Personクラスのインスタンスを生成
        person = new Person('Alice', 30);
    });

    it('should store name and age', () => {
        // プロパティを確認
        expect(person.name).toBe('Alice');
        expect(person.age).toBe(30);
    });

    it('should return a greeting message', () => {
        // メソッドの動作を確認
        expect(person.greet()).toBe('Hello, my name is Alice and I am 30 years old.');
    });
});

活用例2

テスト対象クラス

  • クラス: Calculator
  • プロパティ: 特になし(この例ではプロパティを使用していません)
  • メソッド: add(a: number, b: number): number(2つの数値を加算)、subtract(a: number, b: number): number(2つの数値を減算)
calculator.ts
class Calculator {
    add(a: number, b: number): number {
        return a + b;
    }

    subtract(a: number, b: number): number {
        return a - b;
    }
}

テストコード

  • インスタンス: calculator(Calculatorクラスのインスタンス)
  • 生成されたオブジェクト: Calculatorクラスのインスタンスで、メソッドとしてaddsubtractを持つ。
calculator.test.ts
import { Calculator } from './calculator';

describe('Calculator Class', () => {
    let calculator: Calculator;

    beforeEach(() => {
        // Calculatorクラスのインスタンスを生成
        calculator = new Calculator();
    });

    it('should add two numbers correctly', () => {
        // addメソッドの動作を確認
        expect(calculator.add(2, 3)).toBe(5);
    });

    it('should subtract two numbers correctly', () => {
        // subtractメソッドの動作を確認
        expect(calculator.subtract(5, 3)).toBe(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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?