0

我正在使用 ApacheGenericObjectPool来创建我班级的对象池。

我有网络应用程序。处理完我的请求后,我会将对象放回池中,没有任何问题。在代码中,我将对象保留在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

是否真的需要取决于对象的类型。例如,如果有一个数据库连接池,那么您将很快用完,除非您将它们返回到池中。未能返回其他类型的对象可能会很快消耗测试程序可用的所有内存。一般来说,答案是肯定的,你需要。在某些情况下,不这样做可能会侥幸逃脱,但即使在那些情况下,我也会认为这是不好的风格。

于 2013-11-19T11:59:07.357 回答
0

是的,您肯定必须这样做,原因如下:

  • 如果您有很多测试用例 - 最终您的池将是空的并且测试开始崩溃
  • 您的测试用例可能是您的 API 用户的指南 - 他们可能会与此类代码混淆
  • 这是最佳实践,应该自动完成
于 2013-11-19T12:00:27.817 回答