JUnit в сочетании с каким-то насмешливым фреймворком, таким как Mockito , поможет вам в этом. Если вы хотите продвинуться дальше, например, имея действующие экземпляры внешней службы, вы можете использовать JUnit в сочетании с, например, Cargo , чтобы запустить контейнеры Java EE как часть вашего теста. Легкие базы данных в памяти, такие как HSQLDB , часто используются в качестве баз данных-заполнителей для интеграционных тестов.
Я слышал, что некоторые люди используют JBoss Arquillian , но сам не пробовал. Это больше подходит для удаленного тестирования компонентов Java EE, поэтому может не соответствовать вашим точным требованиям.