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

Vitestに入門しよう

Last updated at Posted at 2024-03-20

はじめに

Vitestは、JavaScriptフロントエンド開発のための高速なテストフレームワークです。学んだ内容をまとめていきます。

Vitestの特徴

  • HMRによるテストの高速化:
    HMR(ホットモジュール交換)を使用しているため、開発効率を上げることができます。
    HMRは、ソースコードの変更を検出し、関連するテストだけを即座に実行できるため、変更による影響をすぐに把握できます。
    開発しながら、テストも一緒に書いている場合に、とても便利ですね。

  • Jestとの互換性がある:
    VitestはJestと互換性があり、Jestの影響を受けています。
    既存のプロジェクトでも採用しやすいです。

  • Viteとの統合:
    Vitestは、高速なビルドツールであるViteをベースにしています。
    ViteはJavaScriptの依存関係を事前にバンドルし、実行時の処理を最小限に抑えて高速化を図っています。
    ちなみに、Viteを使っていないプロジェクトでも、Vitestは使用できます。

インストール

まずは、vitestをインストール

npm install -D vitest

インストールしたら、vite.config.tsファイルを以下のように編集する。

vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  test: {
    include: ["src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
  },
});

VSCodeを使用している人は、以下の「Vitest」という拡張機能を入れれば便利です。
スクリーンショット 2024-03-14 22.57.22.png

簡単なテストを書いてみよう

それでは、簡単なテストを書いていきます。
「sum.ts」ファイルと「sum.test.ts」ファイルを書いていきます。
Jestと同様に、[ファイル名].test.tsのようなファイル名にすれば、自動的にテストファイルとみなしてくれます。

sum.ts
export function sum(a: number, b: number) {
  return a + b;
}
sum.test.ts
import { expect, test } from "vitest";
import { sum } from "./sum";

test("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(3);
});

こちらをテストしてきましょう。
VSCodeのサイドバーにある「テスト」ボタンをクリックします。

スクリーンショット 2024-03-20 10.04.27.png

すると、作成したテストケースが一覧で表示されており、テストしたい項目を選ぶことができます。
スクリーンショット 2024-03-20 10.06.01.png

テストを実行してみましょう。
成功すると、以下のように表示されます。
スクリーンショット 2024-03-20 10.07.40.png

コードを以下のようにして、テストが失敗するようにしてみましょう。

sum.test.ts
import { expect, test } from "vitest";
import { sum } from "./sum";

test("adds 1 + 2 to equal 3", () => {
  expect(sum(1, 2)).toBe(5);
});

テスト実行してみましょう。
失敗すると、エラーの原因などが赤く表示されます。

スクリーンショット 2024-03-20 10.09.21.png

最後に

他にも色々な記事を書いているので、よければ読んでいってください、、、

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