Когда я последний раз пробовал что-то подобное несколько лет назад, я наконец сдался и провел рефакторинг: в этот момент вы НЕ могли создать DataSource вне контейнера. Может быть, теперь у вас получится, может, кто-то что-то придумал.
Тем не менее, это пахнет ... У вас не должно быть НИКАКОГО кода "бизнес-логики", напрямую зависящего от источников данных или поиска JNDI или чего-то подобного. Это все, что нужно связать вместе вне вашего кода.
Насколько гибок ваш дизайн? Если ваш тестируемый код напрямую зависит от источника данных (или даже получает собственное соединение), выполните его рефакторинг. Внедрение соединения позволит вам протестировать все, что вам нравится, с помощью простого старого JDBC, даже используя реализацию в памяти, и избавит вас от необходимости поддерживать много ненужной (во всяком случае, для теста) инфраструктуры для этого.