はじめに
こんにちは、エンジニアの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"
},
おわりに
この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。
最後まで読んでいただきありがとうございました!
参考
次の記事