カクカクしかじか

技術的なアレコレ

Jest

Jestで文字列の内容は問わないが文字列が来て欲しい場合に使えるテクニック

結論 文字列であればなんでもいい場合は、 expect.any(String) を使うのが便利。 test('〇〇の引数に文字列がセットされていること', () => { expect(mock).toHaveBeenCalledWith(expect.any(String)); });

Jestの実行オプションについて

概要 デバッグの時に使いたくなる実行オプションをちょこちょこ忘れるのでメモしておく。 実行オプションまとめ カバレッジOFFの場合 $ npm test -- fuga.spec.ts --coverage=false warningもOFFにしたい場合 $ npm test -- fuga.spec.ts --coverage=false -…

JestのmockReturnValueOnceがmockreturnvalueonce is not a functionになってしまう場合の解決法

経緯 該当の関数を jest.mocked(useStore) のようにモックしているのに、戻り値をモックしようとすると mockreturnvalueonce is not a function のエラーが出てしまいました... 関数だけモックしてもモジュール全体をパス指定してモックしないとダメなことが…

npmスクリプト実行時にオプション渡す方法で地味にハマった件

結論 npmスクリプトの実行時にオプションを渡したい場合は、オプションの前に「--」とスペースを入れると動く! うまくいかない例 $ npm run test --coverage=false うまくいく例 $ npm run test -- --coverage=false

Jestでテスト実行時に時間を固定する方法とその戻し方

結論 jest.useFakeTimers で止めて、 jest.useRealTimers() で戻します。 beforeEach(() => { jest.useFakeTimers({ now: new Date("2023/01/01") }); }); afterEach(() => { jest.useRealTimers(); }); jestjs.io jestjs.io

Nuxt.jsでComposition API利用時にcontextの中身をjestでmockしたい時の解決法

結論 📝 shallowMount(mount) のプロパティの mocks の中に $nuxt -> context -> mockしたいコンテキスト の順番で定義すれば良い describe("Component", () => { let localVue: typeof Vue; let wrapper: ReturnType<typeof shallowMount<Vue>>; beforeEach(() => { localVue = createL</typeof>…

Jestでnuxt-svg-loaderを使ったVueテンプレートのテスト実行時にSVGファイルをパースする方法

結論 プロジェクト直下に SVGファイルをテスト実行時にパースするファイル (svgTransform.js) を定義して、Jestでそれを読み込むようにする github.com 各パッケージのバージョン nuxt@2.15.8 vue@2.6.14 @vue/test-utils@1.3.3 @vue/vue2-jest@29.2.0 jest@…

JestをChromeデバッガーでステップ実行する方法

背景 Jestでテストコードを書いていた際にconsole.logで値をプリントデバッグしていたのですが、正直しんどい... 何か他にいい方法あるやろ!と思ってVue.jsのテストの洋書を読んでいたら、JestでChromeデバッガーを利用したデバッグの方法が書かれていたの…