Так как вы используете @Mock
, нет необходимости фактически создавать экземпляры этих объектов, вызывая их конструкторы.
Вместо:
@Mock
BasicDataSource dataSource = new BasicDataSource();
@Mock
JNDIBasedDao dao = new JNDIBasedDao();
try:
@Mock
BasicDataSource dataSource;
@Mock
JNDIBasedDao dao;
и пусть Mockito обрабатывает создание фиктивных версий этих классов.
Конечно, когда вы делаете это, вы получаете Mock версии этих классов, поэтому вызываете все эти методы на вашемdataSource приведет к вызовам по умолчанию для заглушек Mockito ... которые ничего не делают.
Не уверен, почему вы объединили @Mock
с вызовами методов для того же объекта, который, как вы думаете, будет иметь результат...
Возможно, пройдитесь по отладчику и проверьте класс времени выполнения объектов, которые вы используете в момент, когда выдается исключение.Они могут быть не такими, как вы ожидаете.