Mysql
 sql >> Database >  >> RDS >> Mysql

C'è un modo per eseguire MySQL in memoria per i casi di test JUnit?

Il modo più semplice per utilizzare un database in memoria che è completamente compatibile con MySQL e può essere utilizzato all'interno di casi di test JUnit è imho MariaDB4j. hai solo bisogno di una dipendenza Gradle (/Maven) (http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 ) e alcune righe di codice per iniziare:

DB database = DB.newEmbeddedDB(3306);
database.start();
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");

uno script di avvio può essere incluso tramite

database.source("path/to/resource.sql");

Maggiori informazioni sul readme di GitHub:https://github.com/vorburger/MariaDB4j

EDIT:ho aggiunto alcuni suggerimenti a questa risposta:MariaDB4j sembra aggiungere file nella cartella temporanea di sistema. Quindi funzionerà in modo integrato, il che significa che non è necessario installare nulla e puoi semplicemente utilizzare la dipendenza tramite lo strumento di compilazione desiderato. Ma non è una vera soluzione solo in memoria e quindi non si può più parlare di unit test perché gli unit test non devono basarsi su file o database