0

GenericObjectPoolクラスのオブジェクトのプールを作成するためにApache を使用しています。

私はウェブアプリケーションを持っています。リクエストが処理されたら、問題なくオブジェクトをプールに戻します。finallyコードでは、オブジェクトをブロック内のプールに戻しています。

私の質問は、私のJUnitテストケースでも、プールからオブジェクトを取得して使用していることです。テスト ケースの実行が完了した後、オブジェクトをプールに戻す必要はありますか?

@Test
public void testMethod(){

  try{
     //some code after getting the object from the pool
  }catch(Exception e){

   }finally{

    //call the logic to put the object back to the pool here
   }
}

上記のfinallyブロックで述べたように、テストケースでオブジェクトをクライアントに戻す必要は本当にありますか?

4

2 に答える 2

0

はい、次の理由により、間違いなくそうする必要があります。

  • 多くのテストケースがある場合 - 最終的にプールが空になり、テストがクラッシュし始める
  • テスト ケースは、API ユーザーのガイドラインになる可能性があります。API ユーザーはそのようなコードと混同される可能性があります。
  • これはベストプラクティスであり、自動的に実行する必要があります
于 2013-11-19T12:00:27.817 に答える
0

実際に必要かどうかは、オブジェクトのタイプによって異なります。たとえば、データベース接続のプールがある場合、それらをプールに戻さない限り、すぐに不足します。他のタイプのオブジェクトを返さないと、テスト プログラムで使用できるすべてのメモリがすぐに消費される可能性があります。一般的に、答えは「はい」です。必要です。場合によっては、やらなくても済むこともありますが、その場合でも、スタイルが悪いと思います。

于 2013-11-19T11:59:07.357 に答える