0

ここで、DBUnit テストで興味深い問題に直面しています。

DBUnit テストと xml データセットでテストするコードがいくつかあります。プラットフォーム間でまったく同じデータセットとコード ファイルを使用したテスト結果に一貫性がないため、DB アクセス クラスの一部をリファクタリングする予定であるため、トレイルをたどることにしました。

私が直面している問題は次のとおりです。

  1. データセットには、hbm ファイルで定義された特定のクエリに一致する 3 つのレコードがあります。
  2. クエリは「DATE_FIELD desc による順序」を実行しますが、データセット内のすべてのレコードにこの DATE_FIELD が設定されているわけではありません (つまり、両方のプラットフォームで同じであるスクリプトからの既定値または null として解釈する必要があります)。

Maven がテストを実行する 1 つのプラットフォーム (Linux サーバー) では、それらはすべて問題ありませんが、Windows を搭載した PC では、データベース (データセット) からレコードが異なる順序で抽出されるため、テストの検証時にエラーが発生します。レコードの順序。

したがって、データセットを変更するとテストが両側で正常に実行されることはわかっていますが、誰かがレコードの 1 つに日付列を含めずにこのデータセットを作成した場合、彼は私が知らないビジネス ルールについて知っていた可能性があります。したがって、予期しない将来の問題が発生する可能性があるため、シナリオを変更するつもりはありません。

答えを探した後、質問を修正しています。私が探している答えは、H2 データベースをさまざまなプラットフォームで null 日付と一致させるにはどうすればよいかということです。クエリに触れずに DB 全体の NULLS FIRST または NULLS LAST を取得するには、どのパラメータを設定する必要がありますか?

どうもありがとうございました。

4

1 に答える 1