はじめに
事前にTypeScript+Vueの環境構築はできているものとします。
今回は下記環境でJestを使えるようにします。
- webpack: 4.29.6
- vue: 2.6.10
- typescript: 3.4.1
インストール
yarn add -D @vue/test-utils jest ts-jest vue-jest
設定
package.json
{
// 省略
"scripts": {
// 省略
"test": "jest"
},
"jest": {
"moduleFileExtensions": [
"js",
"ts",
"json",
"vue"
],
"transform": {
".*\\.(vue)$": "vue-jest",
"^.+\\.tsx?$": "ts-jest"
}
},
}
テストファイル配置
ソースファイルを配置しているディレクトリ配下に「__tests__」ディレクトリを作成します。
__tests__/ChatMessage.spec.ts
import { shallowMount } from "@vue/test-utils";
import ChatMessage from "../components/ChatMessage.vue";
describe("ChatMessage.vue", () => {
test("renders props.message when passed", () => {
const message = "new message";
const wrapper = shallowMount(ChatMessage, {
propsData: {
message
}
});
expect(wrapper.find(".text-box").text()).toMatch(msg);
});
});
実行
yarn test
問題なければテストが実行されると思います。
参考
https://vue-test-utils.vuejs.org/ja/guides/using-with-typescript.html
https://jestjs.io/docs/ja/configuration#transform-object-string-string