У меня есть тест для проверки соединения с базой данных.
Когда мне нужно проверить соединение с другой базой данных, я создаю в 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;
}
}
Этого достаточно, у кого есть идеи, есть ли другие варианты испытаний?