8

わかりましたので、プライベートコンストラクターを使用してクラスで単体テストを実行する必要がある割り当てを取得しました。

すべてのメソッドも非静的である場合、クラスを初期化せずに単体テストを行うにはどうすればよいでしょうか。

プライベート コンストラクターを持つクラスで (リフレクションなしで) 単体テストを行う方法はありますか?

4

5 に答える 5

8

このクラスにプライベート コンストラクターがある場合、これはパブリックに使用されますか? そうでない場合は、単体テストを行わないことをお勧めします。この場合、公開されているコードは、このコードを呼び出してテストする必要があります。

単体テストは、一般に使用されるものをテストするためにあります。たとえば、アプリケーション層の間でコードをインターフェースすることによってです。入力を取り、この出力が必要です。それがまさに単体テストの目的です。単体テストでは、実際のメソッドに何があるかは気にしません。必要なものを返し、目的のアクションを実行する限り、合格です。

于 2013-03-27T16:27:40.477 に答える
2

パブリック API を使用してテストする必要があります。テストするクラスをインスタンス化して使用する方法が必要です。

于 2013-03-27T16:25:54.337 に答える
0

単体テストは通常​​、コードが設計を満たし、意図したとおりに動作することを確認するために作成および実行されます。

インスタンスを作成non-staticできないクラス、つまりプライベートコンストラクターのみを作成することは、決して役に立たない可能性がありUnit Testableます。

ユニットテスト可能にするために:

  1. クラスのインスタンスを作成できるはずです。
  2. Testable Function はPublic または Internalのいずれかである必要があります。アセンブリをフレンドアセンブリとして作成することにより、内部機能をテストできます。
于 2013-03-27T17:08:08.103 に答える