首頁 > Java > java教程 > Spring 中的 H 有趣測試

Spring 中的 H 有趣測試

Patricia Arquette
發布: 2024-11-26 15:39:13
原創
297 人瀏覽過

H весёлые тесты в Spring

你好,親愛的爪哇戰士! ?如果您在這裡,那麼是時候開始測試並證明您的程式碼比行銷人員承諾的效果更好。今天我們將討論使用 H2 資料庫在 Spring 中測試邏輯。我們走吧! ?

為什麼我們需要H2?

想像一下:您正在編寫最酷的服務,但您擔心您的業務邏輯生活在一個幻想的世界。您不希望測試驅動真實的資料庫,因為:

  1. 很慢。
  2. 這是有風險的(意外刪除某些內容?我們不是那樣的!)。
  3. 這太現實了,H2就是我們的矩陣,一切盡在掌握。 H2是您的好友代號:
  • 輕量級。
  • 內建。
  • 非常適合測試。

設定 application.properties:讓 H2 為您完成工作

在開始之前,讓我們先準備一下我們舒適的測試小世界。為此,我們將在 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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板