今回は、Bunのtestを試してみた。
前回はBunのSQLite、前々回はBunのWebSocketを試してみました。
で、今回は Bunのtest。普段私はMochaを使うことが多いのだけど、試してみたらさほど変わらない感じで、簡単に使えた。Bun testのドキュメントは下記にあります。
Bun>test
因みに、
Bun は Jest との互換性を目指していますが、すべてが実装されているわけではありません。互換性を追跡するには、この追跡問題を参照してください。https://github.com/oven-sh/bun/issues/1825
とのことです。まぁ、普通に使えそうな気はします。手軽に使えるのは良いかな。
ディレクトリ構成サンプル
.
└test/
├─test1.test.js
└─test2.test.js
test用ファイルをとりま2つ用意する
test1.test.js
import { expect, test } from "bun:test";
test("2 + 2 の結果が 4 だみゃー", () => {
expect(2 + 2).toBe(4);
});
test2.test.js
// https://bun.sh/guides/test/run-tests
//
import { describe, test, expect } from "bun:test";
describe("math", () => {
test("2 + 2 は、4 なのだ。", () => {
expect(2 + 2).toEqual(4);
});
test("2 * 2 は、4 である。", () => {
expect(2 * 2).toEqual(4);
});
});
このtestというメソッドはMochaならitメソッドでdescribeも同じ感じ。第一引数でテストの説明、第二引数でテスト関数を渡すのはまぁ同じ。こんな感じになる。testだけでも良い。
describe(description0, testFunction0(){
test(description1, testFunction1);
})
実行
この二つのファイルを置いてから下記を実行する
$ bun test
すると
結果
bun test
bun test v1.0.11 (f7f6233e)
test2.test.js:
? math > 2 + 2 は、4 なのだ。 [0.04ms]
? math > 2 * 2 は、4 である。 [0.01ms]
test1.test.js:
? 2 + 2 の結果が 4 だみゃー [0.03ms]
3 pass
0 fail
3 expect() calls
Ran 3 tests across 2 files. [18.00ms]
になる。