jest.mock/vi.mockの使用は極力避けた方が良い理由について
#あとで書く #書きかけ #jest.mock #vi.mock #JavaScript #Jest #Vitest
これらのAPIを使った場合、テストコードはテスト対象の実装の詳細に強く依存したホワイトボックステストに陥ってしまいます
これらのAPIはテスト対象コードが特定のパッケージまたはモジュールに依存しているという強い前提に基づいており、テストコードが実装の詳細に強く依存してしまい、信頼性が低下してしまいます
「テスト対象がどのパッケージに依存しているか?」というのは実装の詳細の中でもかなり詳細度の高いものに当たり、テストコードがこれらについての知識を持ってしまうことはあまり理想的ではないと考えます
これらの機能を使わずとも、単独で隔離してユニットテストが書けるようにすると理想的ではないかと思います
もし単独でユニットテストすることが難しい場合は、より前提の少ないmswなどの代替手段を用いてスタブを用意するのが良いのではないかと思います
ただし、どうしてもjest.mockやvi.mockを使わないとテストが難しいというケースも場合によってはあるとは思うので、そういった場面に限定して使うとよいのではないかと思います