Тестирование на подключение к базе данных - PullRequest
0 голосов
/ 20 октября 2019

У меня есть тест для проверки соединения с базой данных.

Когда мне нужно проверить соединение с другой базой данных, я создаю в test / resources в application.properties и затем указываюнужны свойства для подключения к другой базе данных.

    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class ConnectionToDatabaseTest {

        private static final String MESSAGE= "An url fot connection pool : ";

        private static final String MESSAGE_TIMEOUT = "The database closed the connection before the set time.";

        private final TIMEOUT_SEC= 2;

        private static final Logger LOGGER = LoggerFactory.getLogger(ConnectionToDatabaseTest.class);
        private static final String LOGGER_MESSAGE = "\n An error occurred while getting a database connection : /n";


        @Value("${spring.datasource.driver-class-name}")
        private String driverName;

        @Value("${spring.datasource.url}")
        private String urlToDataBase;

        @Value("${spring.datasource.username}")
        private String userName;

        @Value("${spring.datasource.password}")
        private String password;

        @Test
        public void test(){

            DataSource dataSource = getDataSource();


            try (Connection connection = dataSource.getConnection()) {

                DatabaseMetaData metaData = connection.getMetaData();

                String url = metaData.getURL();
                assertNotNull(url);

                String userName = metaData.getUserName();
                assertNotNull(userName);

                boolean connectionValid = connection.isValid(TIMEOUT_SEC);
                assertTrue(MESSAGE_TIMEOUT, connectionValid);

                outputLogInfo(LOGGER, MESSAGE + url);

            } catch ( Exception e){

                outputLogInfo(LOGGER, LOGGER_MESSAGE + e);
                throw new RuntimeException(e);

            }
        }

        private DriverManagerDataSource getDataSource() {

            DriverManagerDataSource dataSource = new DriverManagerDataSource();

            dataSource.setDriverClassName(this.driverName);

            dataSource.setUrl(this.urlToDataBase);

            dataSource.setUsername(this.userName);

            dataSource.setPassword(this.password);

            return dataSource;

        }
    }

Этого достаточно, у кого есть идеи, есть ли другие варианты испытаний?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...