Skip to content

Jestの導入

   

ブラウザからの動作確認はいったん置いておいて、コマンドライン実行で動くものを目指す。

どうせなら自動テストも動かしながらやっていきたい。

JavaScriptのテストフレームワークは、Jest · 🃏 Delightful JavaScript Testingが主流らしいので、それに乗っかる。

Typescriptでの単体テストの書き方(Jest) | スターフィールド株式会社を見ながらインストール。

$ npm install --save-dev jest typescript ts-jest @types/jest
$ npx ts-jest config:init
$ code jest.config.js
$ code package.json
$ npm run test
ts-jest[versions] (WARN) Version 28.0.3 of jest installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=27.0.0 <28.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
ts-jest[config] (WARN) message TS151001: If you have issues related to imports, you should consider setting `esModuleInterop` to `true` in your TypeScript configuration file (usually `tsconfig.json`). See https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/#easier-ecmascript-module-interoperability for more information.

jestとts-jestのバージョンが不一致らしい。

$ npm install -D jest@27

あとtsconfigにesModuleInteropを設定が必要らしい。

$ npm run test

> mdmml_js@1.0.0 test
> jest

 PASS  src/mdmml.test.ts
  ✓ number (1 ms)
  ✓ not number (1 ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        1.382 s, estimated 2 s
Ran all test suites.

できた。

けど、テスト対象の関数exportしないとダメなの?