Kann MySQL im Arbeitsspeicher für JUnit-Tests verwendet werden?
Bei der Softwareentwicklung ist das Testen von Datenbankinteraktionen unerlässlich, kann jedoch eine erforderliche Zeit erfordern Vollständige Datenbankeinrichtung und -verwaltung. Um diesen Prozess zu vereinfachen, verwenden einige Entwickler SQLite- oder H2-Datenbanken für In-Memory-Tests. Gibt es jedoch eine Option für die Verwendung von MySQL selbst in diesem Zusammenhang?
Lösung: MariaDB4j
Die Antwort liegt in MariaDB4j, einer Gradle/Maven-Abhängigkeit, die eine vollständige Bereitstellung bietet kompatible In-Memory-MySQL-Datenbank für JUnit-Tests. Es erfordert eine minimale Einrichtung:
DB database = DB.newEmbeddedDB(3306); database.start(); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
Zur zusätzlichen Initialisierung kann ein Startskript eingebunden werden:
database.source("path/to/resource.sql");
Überlegungen
MariaDB4j stellt zwar eine eingebettete MySQL-Lösung bereit, arbeitet jedoch nicht ausschließlich im Speicher. Es erstellt temporäre Dateien im temporären Ordner des Systems. Daher handelt es sich nicht um eine echte In-Memory-Lösung, und Tests, die darauf basieren, weichen möglicherweise von der traditionellen Definition von Unit-Tests ab, die Unabhängigkeit von externen Ressourcen vorschreibt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3