3
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?

keitamaxAdvent Calendar 2024

Day 9

カスタム関数をテストする

Last updated at Posted at 2024-12-08

はじめに

こんにちは、エンジニアのkeitaMaxです。

前回作成したカスタム関数のテストを書いてみようと思います。

インストール

今回はJestを使用する予定なので、以下のコマンドでインストールします。

npm install --save-dev jest
npm install --save-dev ts-jest

実装

testフォルダを作成し、その配下にテストをするためにisEmpty.test.tsファイルを作成しました。

array-extention
├─ src
│  ├─ index.ts
│  └─ rules
│     └─ isEmpty.ts
├─ test
│  ├─ index.ts
│  └─ isEmpty.test.ts
└─ jest.config.js
isEmpty.test.ts
describe('Array.prototype.isEmpty', () => {
  it('空配列の場合にtrueが返ってくるテスト', () => {
    const array: any[] = []
    expect(array.isEmpty()).toBe(true)
  })

  it('すべてundefinedの配列の場合にtrueが返ってくるテスト', () => {
    const array = [undefined, undefined]
    const result = array.isEmpty()
    expect(array.isEmpty()).toBe(true)
  })

  it('すべてundefinedではない配列の場合にfalseが返ってくるテスト', () => {
    const array = [1, 2, 3]
    expect(array.isEmpty()).toBe(false)
  })

  it('一部がundefinedではない配列の場合にtrueが返ってくるテスト', () => {
    const array = [1, undefined, 2]
    expect(array.isEmpty()).toBe(false)
  })
})

このように各パターンのテストを作成しました。

jest.config.js
module.exports = {
    preset: 'ts-jest',
    testEnvironment: 'node',
    setupFilesAfterEnv: ['./test/index.ts'],
};

このファイルでテストが始まる前に./test/index.tsを読み込むような設定をしています。

test/index.ts
import "../src"

このファイルでは、前回作成したsrc/index.tsのカスタム関数をimportしているファイルをimportしています。

実際にテストしてみる

以下コマンドで実際にテストしてみます。

npm run test
% npm run test

> hsd-array-extension@0.0.3 test
> jest

 PASS  test/isEmpty.test.ts
 PASS  test/notUndefined.test.ts

Test Suites: 2 passed, 2 total
Tests:       9 passed, 9 total
Snapshots:   0 total
Time:        1.003 s
Ran all test suites.

これで全てのテストが成功しているので作成完了です。

npm run testができない場合は、package.jsonにいかがあることを確認してください。

  "scripts": {
    "test": "jest"
  },

おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

参考

次の記事

3
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
3
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?