4520 shaares
1 résultat
taggé
testcontainers
Problème
HSQLDB ou H2DB sont deux super beaux projets ! En substance, ils permettent, durant les phases de tests, de charger des BDD en mémoire et d'utiliser le dialecte de la base que l'on aura en production (eg. PostgreSQL, Oracle, etc).
Sauf que les dialectes des BDD changent et que toutes les syntaxes ne sont pas complétement implémentées...
Solution
Les TestContainers ! C'est-à-dire que pour charger votre BDD durant vos tests, vous aller écrire ceci :
public class MyTest {
private static DataSource dataSource;
private static MySQLContainer mysql;
@BeforeClass
public static void init() throws InterruptedException{
//You can also use the GenericContainer for arbitrary containers
//But there are convenient classes for common databases.
mysql = new MySQLContainer("mysql:5.5.53");
mysql.start();
dataSource = DataSourceBuilder.create()
.url(mysql.getJdbcUrl())
.username(mysql.getUsername())
.password(mysql.getPassword())
.driverClassName("com.mysql.cj.jdbc.Driver")
.build();
}
@AfterClass
public static void destroy(){
mysql.close();
}
@Test
public void foo(){
//use the database
}
}
Le seul prérequis, avoir podman (oui car Docker c'est has been).
Enjoy :D