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