Подавить исключение NullPointerException в Mockito?

Метод DAOClass.makeDBConnection() возвращает источник данных, настроенный (с помощью поиска) на сервере приложений (Jboss). Необходимо реализовать тестовый пример junit для этого сценария.

Используя Mockito, протестировал метод DAO следующим образом. Поскольку он не может найти источник данных (как и ожидалось), он возвращает исключение NullPointerException. Как обработать NullPointerException и вернуть соединение, которое я создаю в коде ниже? ИЛИ есть ли какая-либо другая лучшая инфраструктура модульного тестирования, которая обрабатывает этот сценарий?

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection conn = DriverManager.getConnection("jdbc:sqlserver://DB:1433;DatabaseName=databasename", "userid", "password");

    when(DAOClass.makeDBConnection()).thenReturn(conn);

1 ответ

Mockito не может имитировать вызовы статических методов так, как у вас; он эффективно работает путем динамического переопределения всех методов через сгенерированный подкласс (прокси).

Вам нужно будет написать класс-оболочку для статических методов, которые вы хотите смоделировать, в противном случае рефакторинг кода, чтобы избежать статического вызова, или использовать инструмент, такой как PowerMock, чтобы переписать байт-код вашей системы во время выполнения.

Другие вопросы по тегам