🐷
vitestでexpectやtestをimportをせずに書く
問題
vitestを使っている。
expectやtestのimportを一々書くのが面倒。
例
import { expect, test } from "vitest"; // これが面倒
import { ValueObject as Foo } from "../value-object";
test("bar", () => {
const foo = new Foo(1)
expect(foo.v).toBe(1);
});
どうするか?
対応
globals設定を追加する。
https://vitest.dev/config/#globals にある通り追加する。
設定追加内容を以下に抜粋。
// vite.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
globals: true,
},
})
// tsconfig.json
{
"compilerOptions": {
"types": ["vitest/globals"]
}
}
すると、下記で動くようになる。
import { ValueObject as Foo } from "../value-object";
test("bar", () => {
const foo = new Foo(1)
expect(foo.v).toBe(1);
});
余談
By default, vitest does not provide global APIs for explicitness.
デフォルトでは、vitestは明示性のためのグローバルなAPIを提供しません。
わかる。でも面倒になるんだよな。
Discussion