ホームページ > Java > &#&チュートリアル > 春のHな楽しいテスト

春のHな楽しいテスト

Patricia Arquette
リリース: 2024-11-26 15:39:13
オリジナル
347 人が閲覧しました

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

こんにちは、親愛なる Java 戦士! ?ここまで来たら、テストパスに乗り出し、コードがマーケティング担当者の約束よりもうまく機能することを証明するときが来ました。今日は、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、テストの間に友情を築く方法がわかりました。これらの例は、バグがなく、テストが初めて機能する世界への鍵となります。忘れないでください。テストはコードを改善するものではありませんが、ぐっすり眠るのに役立ちます。幸運を! ?

以上が春のHな楽しいテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート