簡體   English   中英

使用虛擬 H2 DB 與 Jooq 進行測試

[英]Use dummy H2 DB for testing with Jooq

我想找到一種可靠的方法來使用 Jooq 測試我的 Maria DB 模式。 這就是我現在所擁有的:

  • 讓 Jooq 與 Gradle 通過 org.jooq.codegen.XMLGenerator 從真實數據庫(即 Maria 實例)中提取一個org.jooq.codegen.XMLGenerator模式,這一步將生成一個maria_information_schema.xml
  • 使用此模式生成所有 Java 類。

為了測試我將要編寫的所有類,我開發了一種技術:

  • 觸發嵌入 ram 數據庫的 H2;
  • 構建一個 java InitDatabase.java class手動設置一個與 MariaDB 盡可能相似的數據庫模式;
  • 在 ram DB 上執行所有測試。

只要我不更改真實數據庫上的某些內容並且我忘記在InitDatabase.java class 上做同樣的事情,這個過程就可以完美地工作。

我的問題是:有沒有一種方法可以使用 XML 模式或生成的 java 類來創建與 MariaDb 具有相同模式的 H2 數據庫,而無需手動編寫所有創建表語句?

謝謝

這是一個開放式問題,沒有明顯的“正確”答案。 jOOQ 的官方觀點是您可能需要重新考慮使用替代 RDBMS 來測試您可以直接使用目標 RDBMS 做什么,特別是使用 testcontainers

您可以將此方法與 jOOQ 的代碼生成相結合,以實現更簡化的開發過程。

簡而言之,jOOQ 的建議是使用:

  • 用於數據庫變更管理的 Flyway 或 Liquibase
  • 用於代碼生成的測試容器
  • 用於集成測試的測試容器

其他等效產品顯然也是可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM