你好,親愛的爪哇戰士! ?如果您在這裡,那麼是時候開始測試並證明您的程式碼比行銷人員承諾的效果更好。今天我們將討論使用 H2 資料庫在 Spring 中測試邏輯。我們走吧! ?
想像一下:您正在編寫最酷的服務,但您擔心您的業務邏輯生活在一個幻想的世界。您不希望測試驅動真實的資料庫,因為:
在開始之前,讓我們先準備一下我們舒適的測試小世界。為此,我們將在 src/test/resources/application.properties 中編寫必要的設定。瞧:
# Подключаем H2 spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password # Убедимся, что Hibernate всё за нас делает spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.url: 表示我們要使用「記憶體」資料庫(mem:testdb),一旦我們關閉測試,該資料庫就會消失。
DB_CLOSE_DELAY=-1:資料庫將一直存在到 JVM 結束(穩定性萬歲!)。
spring.jpa.hibernate.ddl-auto=create-drop:我們在執行測試時建立一個資料庫,然後刪除它。清潔是成功的關鍵。
對於 Maven
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
對於 Gradle
implementation 'com.h2database:h2'
現在讓我們來寫測驗。我們開啟 Spring、註解的魔力以及對程式碼的一點熱愛。
假設我們有一個 User 實體:
# Подключаем H2 spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password # Убедимся, что Hibernate всё за нас делает spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
測試新增使用者
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
@SpringBootTest:提升 Spring 上下文(一切都像在生產中一樣,但安全)。
@Autowired:依賴注入,因為我們應得的。
UserRepository:您的儲存庫就像在戰鬥中一樣工作。
現在您知道如何在 Spring、H2 和測驗之間建立友誼。這些範例是您進入一個沒有錯誤並且測試一次就能起作用的世界的鑰匙。不要忘記:測試不會讓你的程式碼變得更好,但它們確實可以幫助你安然入睡。祝你好運! ?
以上是Spring 中的 H 有趣測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!