問題タブ [spring-test-dbunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - HSQLDB 上の Spring DBUnit を使用した Hibernate および Spring Data - 外部キー制約のために削除できない
Hibernate と Spring Data を使用して、非常に単純なドメインをモデル化しています。
と
次に、データ サービスに「updateUser」メソッドを用意します。これは、名前どおりに機能します。チームをユーザーに追加するには、このメソッドが使用され、カスケードによってチームがデータベースに永続化されるという考えです。
次に、HSQLDB データベースと Spring DBUnit を使用してこのメソッドの単体テストを行い、初期データベースの内容と予想される DB の内容をセットアップします。
初期 DB コンテンツ構成
予想される DB コンテンツ構成
次に、2 つのテストを実行します。1 つは更新の成功をテストするテストです。システムにまだ存在しないユーザーを更新できないことをテストするもの。
成功テスト
「ユーザーが存在しません」テスト
「成功」テストは正常に機能します。ただし、「失敗ケース」テストは次のエラーでエラーになります。
「成功」テストに追加されたテストデータを破棄できないことを示唆しているようです(成功テストに @Ignore アノテーションを追加し、失敗テストに合格しました)。私の質問はなぜですか?@OneToMany 関係のカスケードが ALL に設定されているため、ユーザーとチームの関係の一部として保存されたすべてのエンティティを削除する必要があります。
誰にもアイデアはありますか?
spring - Spring / DbUnit は 1 回のテスト後に接続を閉じます
そのため、 Java 構成の Spring アプリケーション (3.2.3) と Oracle データベースの統合テストを作成する必要があります。Spring-test-DbUnitによって入力される別のスキーマがあり、最初のテストは問題なく実行されます。以下の他のすべてのテストは、同じクラスにあるかどうかに関係なく、接続が閉じられているために失敗します。
データソースは次のとおりです。
そして、これはサンプルの統合テスト クラスです。
これは、トランザクションのコミット/ロールバック後に接続を閉じる Spring のデータベース接続動作の問題でしょうか? はいの場合、どうすればこれを解決できますか? 私の最後の試みは、クラス/メソッドベースでトランザクションを作成することでしたが、成功しませんでした。
前もって感謝します。
java - Spring テスト DBUnit @DatabaseSetup アノテーションを使用する場合、JPA アノテーションは必要ですか?
Spring テスト dbunit ライブラリで遊んでいます。データセットについて質問があります。POJO
テストでメモリ内データベースに保持したいエンティティを表す があります。これは、またはのPOJO
ような JPA アノテーションによって注釈が付けられていません。注釈付きの XML データセット ファイルでそのようなクラスを使用することは可能ですか?@Entity
@Table
@Column
@DatabaseSetup
コード例: XML データセット ファイル:
Person POJO クラス:
現在、次のエラーが発生しています。
org.dbunit.dataset.NoSuchTableException: 人
JPA アノテーションを持つ別の POJO クラスがあり、@DatabaseSetup
アノテーションによってエラーなしで処理されます。単一のテストで両方の POJO を使用しようとしています。テスト前にデータベースをセットアップするために、Spring テスト DBUnit ライブラリには JPA アノテーションが必要ですか?
spring - 手動トランザクション管理による Spring 統合テスト
Spring との統合テストに関する多くの投稿やスレッドを読みましたが、満足できるものも役立つものもありません。
Hibernate、Spring Data、および Oracle データベースで Spring 3.2.3 を使用しています。テストには、DbUnit と Spring-test-dbunit も使用します。本番コードでは、トランザクションはコントローラーによって開始され、サービス自体はトランザクションについて何も知りません。
だから、ここに私のテストがあります:
私が見つけたのは@Transactional(propagation=Propagation.REQUIRES_NEW)
、テストで NewsService に注釈を付けると正常に動作するということですが、本番モードとは異なります。@Transactional(propagation=Propagation.REQUIRED)
DbUnit-Spring-test はそれ自体でトランザクションを開き、トランザクションがまだコミットされていないため、後者のアサートは失敗するため、十分ではありません。最後のアサートが実行される前にトランザクションがコミットされるようにするにはどうすればよいですか?
spring - 親クラスの DBUnit NoSuchColumnException
だから私はこのエラーが発生しています:
Spring JUnit テストのコンテキストで DbUnit を使用して H2 DB にデータを入力しようとするとき。H2 DB の DDL は、JPA アノテーション付きクラスから作成されます。ただし、列は存在し、コア クラスによって拡張される抽象クラスにあります。
説明させてください。コア JPA クラスは次のようになります。
親クラスは次のようになります。
私は次のようなテストを開始しています:
私の Toyota.xml データファイルは次のようになります。
何かご意見は?
spring - Spring でのテスト目的で特定のメモリ内データベースを構成する
単体テストを実行するときに H2/HSQL などのメモリ内データベースを使用するが、Spring Boot アプリケーションを実行するときに本番データベース [Postgre/MySQL] を使用するように、Spring Boot アプリケーションを構成するにはどうすればよいですか?
spring - spring+hibernate テスト後にデータベースをクリアする
データベースへのエンティティ クラスの追加をテストしようとしています。しかし、現在、私はそれを1回しか実行できません((( 2回目にテストを起動すると、失敗します(((また、テストが終了した後にデータがクリアされないことに気付きました(((((((前のデータがまだ残っているため、次のテストはクラッシュします。コードおよびメッセージ トレースは次のとおりです。
例外:
Inet ソリューション (@DirtiesContext、空のデータセット ファイルなど) で提案されたすべてのデータベースをクリーンアップしようとしました - それらはここでは機能しません(((((私のタスクは、起動するたびにこのテストを機能させることです。何かアイデアはありますか?
java - DBUnitバイト挿入
Spring Oauth を使用しており、テスト データを oauth_client_token テーブル (クライアント側の Spring Oauth 2) に挿入しようとしています。Spring Oauth の のバイトコードを見ると、次のように表示されますJdbcClientTokenService.saveAccessToken
。
私が懸念しているのは、オブジェクトのバイトnew SqlLobValue(SerializationUtils.serialize(accessToken))
を生成しているこのセクションです。統合テスト中に DBUnit がこのすべてのデータを挿入する方法が必要でした。以前に行ったことは、ランダムな文字列の base64 バイト文字列を生成し、DBUnit に挿入させることでした。ただし、バイトで SerializationUtils.deserialize を呼び出す が呼び出されると、正しくないヘッダー例外が発生します。これは、base64 が SerializationUtils.serialize と同じ出力を生成していないために発生すると考えられます。DBUnit を使用して正しいデータを挿入する方法があれば教えてください。JdbcClientTokenService.getAccessToken
ありがとう
java - Spring テスト + DBUnit で DataSet を読み込めません
Spring Boot アプリケーション内で統合テストを作成しようとしています。セットアップ構成を正しく行うのに問題があります。次の例外がスローされます。
私がすでに試したこと:
- sampleData.xml ファイルの名前を変更します。
- value="" 表記を使用します。
- ファイル名の前に classpath: を使用します。
- ファイル名の前に追加の「/」を使用します。
sampleData.xml は、テスト クラスと同じディレクトリにあります。私は愚かな何かを見逃していると思います。
サンプルデータ.xml:
BenutzerVerwaltungsIntegrationsTest:
ExampleApplicationContext: