私はいくつかのビジネスロジックを実行し、いくつかの計算を返すステートレスなクラスをいくつか持っています。それらのそれぞれは、当然他のクラスへの依存関係のセットを持っています。Typescriptでテスト可能な関数をエクスポートするための適切なクラス設計は何ですか?
は今、私が間ジャグリングきた2つのデザインがあります。
は、各メソッドは静的メソッドでクラスを持っています。 jest import mockingを使用して、テストの依存関係を上書きすることができます。利点は、1つのクラスインスタンスしか持たないことです。
通常の非静的メソッドを持つクラスがあります。これは、使用される各場所でクラスをインスタンス化する必要があります。私はコンストラクタでクラスの依存関係を渡すことができます。これをテストするのはかなり簡単です。欠点は、複数のクラスインスタンスと潜在的にコード内の依存関係を作成することです。
どちらが好ましいイディオムTSアプローチですか?
IoCコンテナを使用する古典的な解決策もありますが、このアプリケーションはかなり小さく、余分な膨らみを追加したくないため、これを避けたいと思います。
また、pure関数とforegoクラスを一緒にエクスポートしたくないので、(VSCodeの)クラスの自動インポートを失うことになります。