HSQLDBを使用して、JUnitユニットのテスト用にhibernateのクラスとクエリをテストします。各テストのsetUp()
コールでは、メモリ内のhsqlデータベース(hibernateを通じて)をテストクラスの名前とテストケースを使用して初期化し、メモリ内のdbインスタンスの接続文字列を作成します。しかし、私の2回目のテストでは、IDシーケンスは最初のテストから続きます。私は私のテストが絶対に独立していることを明らかにしたいので、これは私を驚かせます。私のIDに@GeneratedValue(strategy = GenerationType.AUTO)
を使用しています。私の意図する開発と運用データベースはmysqlまたはpostgresqlですが、ここでは問題にはなりません。HSQLDB単体テスト用
更新 私は小さなテストケースを試しましたが、間違っていました。私はsecodnテストでより多くのエンティティを作成しましたが、異なるIDが発生しました。私の全体が悪い!
これは予期しない動作です。データベース接続を初期化するために使用している 'setUp()'のコードを投稿できますか? – Perception
小さなテストケースを試しましたが、間違っていました。私はsecodnテストでより多くのエンティティを作成しましたが、異なるIDが発生しました。私の全体が悪い! –
実際には、2番目のテストは生成されたIDの実際の値に依存してはいけません。このテストでは、環境についての暗黙の前提はありません。 – yegor256