2

これは、IoC コンテナーを使用するときにコンストラクターをどのように公開するかについての、やや難解な質問です。私はJava、Guice、およびJunit4を使用していますが、この質問はより一般的であると確信しています.

Guice ドキュメントのベスト プラクティスでは、「コンストラクターを可能な限り非表示にする」と記載されています。これは私が非常に同意することなので、喜んでコンストラクターを非公開にし、インスタンス化を Guice に依存することにしました。

ただし、これにより、クラスのモックと単体テストで問題が発生します。すべてのコンストラクターがプライベートである場合、単体テストで何かをインスタンス化し、モックされた依存関係を渡すにはどうすればよいでしょうか? 単体テストごとに新しい Guice モジュールを作成する必要があるのは、やり過ぎのように思えます。したがって、これらのコンストラクターを実際に公開する必要があります。

DI が単体テストと組み合わせると非常に便利であることを考えると、コンストラクターを非表示にしておくことに関する Guice ドキュメントのベスト プラクティスは、実際には間違いでしょうか?

4

1 に答える 1