2

abstractテスト目的でクラスのスタブ実装を利用してきました。現在、私の単体テストはtest私のディレクトリと一緒のディレクトリにありsrcます。

テストで使用されるスタブをどこに配置するかについてのベスト プラクティスがあるかどうか疑問に思っています。私はいくつかのことを試みてきましたが、私が何をしても、私の一部は絶え間なく混乱しているようです.

私が試したこと:

  • それらを使用して、実際の単体テスト内でスタブ実装を宣言します。複数の JUnit クラスでスタブを使用する必要がある場合、これはうまくいきません。
  • 親クラスと同じパッケージにスタブを配置します。のパッケージを汚染するテスト コードが突然登場するため、これはひどい考えのように思えますsrc
  • testパッケージ構造のどこかにスタブ クラスを保持します。これは最も合理的なオプションのように思えますが、これを行う最善の方法が何であるかはわかりません。

心に留めておいてください、私はおそらくこれを考えすぎています。私の心を休ませるベストプラクティスに関する情報はありますか? モック フレームワークへの切り替えは、このジレンマの解決策になりますか?

とても有難い。

4

1 に答える 1

2

3番目のオプションは、あなたが与えた理由により、他の2つよりも間違いなく優れています. 私はこのような時期に Maven のディレクトリ構造を参照するのが好きですが、それはあなたの 3 番目のオプションと異なることを暗示しているようには見えません。

私がしていることは、テスト自体の内部クラスとしてスタブを作成することです。これが乱雑になったり、再利用する必要が生じたりしたら、スタブを抽象クラスと同じパッケージに入れますが、testディレクトリの下に置きます。


多くのプロジェクトが、次のように機能する「ビルダー」オブジェクトを持つように進化していることを知っておく価値があるかもしれません:

Person person = new PersonBuilder().withName("John Doe").withDefaultAddress().build();

これを行う理由は、Personテスト対象に応じて、さまざまな方法で を作成する必要がある場合があるためです。1つだけPersonStubでは足りないかもしれません。

于 2013-09-16T20:17:24.137 に答える