MySQL可以在記憶體中用於JUnit測試嗎?
在軟體開發中,測試資料庫互動是必不可少的,但它可能需要成熟的資料庫設定和管理。為了簡化此過程,一些開發人員使用 SQLite 或 H2 資料庫進行記憶體測試。然而,在這種情況下是否有使用 MySQL 本身的選項?
解決方案:MariaDB4j
答案在於 MariaDB4j,它是一個 Gradle/Maven 依賴項,提供了完整的用於 JUnit 測試的兼容內存 MySQL 數據庫。它需要最少的設定:
DB database = DB.newEmbeddedDB(3306); database.start(); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
對於額外的初始化,可以包含啟動腳本:
database.source("path/to/resource.sql");
注意事項
雖然MariaDB4j提供了嵌入式MySQL解決方案,但它並不純粹在內存中運行。它在系統的臨時資料夾中建立臨時檔案。因此,它不是真正的記憶體中解決方案,依賴它的測試可能會偏離傳統的單元測試定義,傳統的單元測試定義要求獨立於外部資源。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3