2013-11-19 2 views
0

Я использую Apache's GenericObjectPool, чтобы создать пул объектов моего класса.Возвращает ли объект обратно в бассейн?

У меня есть веб-приложение. После обработки моего запроса я возвращаю объект обратно в пул без каких-либо проблем. В коде я сохраняю объект обратно в пул в блоке 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 выше?

ответ

0

Да, вы определенно должны в силу следующих причин:

  • в случае, если у вас есть много тестов - в конце концов, ваш бассейн будет пустым и запуск теста аварией
  • вы тестируете случаи могут быть ориентиром для ваших пользователей API - их можно путать с таким кодом
  • это наилучшая практика, и это должно быть сделано автоматически
0

Действительно ли вам нужно, зависит от типа объекта. Например, если есть пул соединений с базой данных, вы быстро закончите, если не вернете их в пул. Невозможность вернуть другие типы объектов может быстро использовать всю память, доступную для тестовой программы. В общем, ответ «да», вам нужно. В некоторых случаях он может быть открыт, чтобы избежать неприятностей, но даже в тех случаях я бы счел его плохим.

Смежные вопросы