問題タブ [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.

0 投票する
1 に答える
5079 参照

java - データセットをデータベースにロードするときのDBUnitからのNoPrimaryKeyException

DBUnitを使用する単体テストの1つを実行しようとすると、NoPrimaryKeyExceptionが発生します。データテーブルはHibernateを使用して作成され、多対多の関係をマッピングする2つのクラス間の結合テーブルです。関係を定義する注釈は次のとおりです。

データセットを定義するために使用しているXMLファイルの他のエントリは正常に機能しているように見えますが、結合テーブルは機能していません。次の例外が発生します。

問題のデータセットエントリは次のようになります。

そして、主キーとして両方のフィールドを持つデータベースと一致します(それが役立つ場合、DatabseはMS SQL Serverです)次のxmlで定義されているJoinedされている2つのテーブルに対応するエントリがあります。

Hibernateアノテーションで主キーを定義する必要がありますか?もしそうなら、どうすればいいですか?2つの列が共同主キーであることを意味するように、データセットの定義方法を変更する必要がありますか?

私はそのことに関して休止状態またはDBUnitにあまり熟練していません、そして私は私の知恵の終わりにいるので、どんな援助も本当にありがたいです。

0 投票する
1 に答える
3317 参照

java - DBUnit 自動データセット生成

StackOverflow の DbUnit でデータセットを作成することに関するいくつかの質問を見てきましたが、それらはすべて既存のテーブルからのデータのエクスポートに関するものでした。

私の質問は、DBUnit がデータベース スキーマに基づいてダミーのデータセットを作成できるかどうかです。文字列が「ZDSFFDSDGF」のようになり、BLOBS がゴミになるかどうかは気にしません。テスト データが必要なだけで、テーブルにデータを入力するのではなく、開発に時間を費やしたいと考えています。

解決策、指針はありますか?それを行うNetbeansプラグインは素晴らしいことですが、これは希望的観測にすぎないと思います...

0 投票する
3 に答える
7457 参照

java - DBunit は java.lang.ClassCastException を生成します: CLOB フィールドをロードしようとすると、java.lang.String を oracle.sql.CLOB にキャストできません

Oracle 11GR2 で最新バージョンの DBUnit (2.4.7) を使用しています。Java 6 (1.6.0_15) と最新バージョンの Oracle のクライアント jar (jdbc6.jar) を使用しています。

CLOB Oracle フィールドによって参照されるデータを、XML ファイルからデータベースに正常にロードできませんでした。

私は、次のバージョンのあらゆる種類の組み合わせを使用しました。

  • Oracle JDBC ライブラリ ojdbc5.jar、ojdbc6.jar、oracle 10 jar
  • Hibernate ライブラリなど... 問題は DBUnit にあると思います。スタック トレースについては、以下を参照してください。

    /li>

Java 6、1.6.0_15 を実行しています。

私はもう試した:

1) この定義を使用した FlatXmlDataSet

2) この定義を使用した XmlDataSet

どんな助けでも大歓迎です!

スタック トレースは次のとおりです。

0 投票する
1 に答える
323 参照

unit-testing - dbunit、データベースファイルの同じ XML 表現を異なるデータベースに使用できます

プロジェクトのデータベース アクセス レイヤーの単体テストを実行しようとしています。しかし、Apache derby データベースを使用してこのレイヤーをテストする必要があり、本番環境のテスト中に Oracle で実行する必要があります。

dbunit を使用してデータベースの同じ xml 表現を使用できますか?

0 投票する
4 に答える
3434 参照

java - 統合テスト-Hibernate&DbUnit

私はJUnitでいくつかの統合テストを書いています。ここで何が起こるかというと、すべてのテストを続けて(個別にではなく)実行すると、データベースに保持されているデータは常に変更され、テストの実行中に予期しないデータ(前のテストによって挿入された)が検出されます。

DbUnitを使用することを考えていましたが、実行のたびに自動インクリメントインデックスがリセットされるかどうか疑問に思います(テストでは永続化されたエンティティのIDもチェックされるため)。

ありがとう

M。

0 投票する
1 に答える
906 参照

xml - 改行を挿入する方法dbunitデータセット

dbunitデータセットに改行を挿入する方法は?このような:

このようにすると、dbのフィールドストーリーはスペースだけで分割されて表示されますが、改行が必要です。

0 投票する
4 に答える
12554 参照

java - DBUnitデータセットの現在の相対的な日付

たとえば、DBUnitXMLデータセットで明日を日付として指定する方法があるかどうか疑問に思っています。将来の日付と過去の日付でコードロジックが異なる場合があり、両方のケースをテストしたいと思います。確かに、2239年11月5日のようなものを指定して、テストがこの日付まで機能することを確認できますが、よりエレガントな方法があります。

私はJava開発中にこのような状況にまだ直面していませんが、コードロジックが日付の前日、日付の2日前、日付の2日以上前で異なっていた経験があります。この場合、データベース駆動型テストを作成するための唯一の可能な解決策は、データのインポート中に相対的な日付を挿入することです。

このためにDBUnitが提供する機能はありますか?

0 投票する
3 に答える
2904 参照

hibernate - DbUnit を使用して BigDecimal データを HSQLDB テスト データベースに入れる

バックエンドで Hibernate JPA を使用しています。JUnit と DBUnit を使用して単体テストを作成し、インメモリ HSQL データベースに一連のデータを挿入しています。

私のデータセットには以下が含まれています:

discount_price 列が次のように定義されている OrderLine Java オブジェクトにマップされます。

ただし、テスト ケースを実行して、返された割引価格が 0.3 に等しいとアサートすると、アサーションは失敗し、保存された値が 0 であると表示されます。データセットの discount_price を 0.9 に変更すると、1 に切り上げられます。

HSQLDB が丸め処理を行っていないことを確認しましたが、5.3 のような値を持つ Java コードを使用して注文明細オブジェクトを挿入でき、正常に動作するため、間違いなくそうではありません。

私には、DBUtils が何らかの理由で私が定義した数値を四捨五入しているように思えます。これが起こらないようにする方法はありますか?なぜこれを行っているのか、誰か説明できますか?

ありがとう!

0 投票する
1 に答える
385 参照

java - 春、休止状態、およびスカラを使用して、dbunit よりもテストデータをロードするためのより良い方法はありますか?

以下は、dbunit について私が本当に嫌いな点です。

1) 挿入の正確な順序を指定することはできません。これは、dbunit が挿入を XML ファイルで定義した順序ではなく、テーブル名でグループ化することを好むためです。これは、他のテーブルの他のレコードに依存するレコードがある場合に問題になるため、テスト中に外部キー制約を無効にする必要があります...テスト中にこれらの外部キー制約が本番環境で発生するため、実際には最悪ですそれらを認識してください!

2) 彼らは、xml 名前空間を使用して xml を定義することを強要しているように見えます...正直なところ、これを行うのは面倒です。名前空間のない data.xml が好きです。できます。しかし、彼らはそれを非推奨にすることに非常に熱心です。

3) テストごとに異なる xml ファイルを作成するのは難しいため、実際にはアプリ全体のデータを作成することが推奨されます。残念ながら、データのサイズが大きくなり、物事が絡み合うと、このプロセスも少し肥大化します。すべてのテストにわたって大量のテスト データをコピー/貼り付けすることなく、テスト データをチャンクに分割するためのより良い方法が必要です。

4) 大きな xml ファイルで ID 参照を追跡することは不可能です。130 のドメイン クラスがある場合、当惑するだけです。このモデルは単にスケーリングしません。

Spring/Hibernate スペースで、肥大化が少なく、より優れたものはありますか? db unit は歓迎されなくなったので、もっと良いものを探しています。

0 投票する
1 に答える
2440 参照

database - 多くの小さな dbunit データ セットですか、それとも 1 つの大きなデータ セットですか?

テスト データを複数の小さなデータ セットに分散させると、スキーマが微調整されるたびにメンテナンスの頭痛の種になるように思えます。単一のより大きなテスト データ セットを作成する際に問題が発生することはありますか? 「より大きな」とは、まだ合計で数百のレコードについて話しているだけです。