マップされていない型に対して session.CreateCriteria(typeof(…)) が失敗しないのはなぜですか?
-
26-09-2019 - |
質問
作成するエンティティごとに、データベースから 1 つのレコードをロードするだけの単体テストを作成して、クエリが機能し、データがエンティティに正しく設定できるかどうかを確認します。これは、基本的なマッピングの単体テストとして見ることができます。これにより、そのタイプのマッピング ファイルが存在し、埋め込みリソースとして設定されていることも確認できます。
テストは次のようになります (テストは汎用基本クラスに存在します)。
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();
アサーションは何も行いません。この行が例外をスローせずに機能するかどうかを確認したいだけです。
あるケースでは、マッピング ファイルを埋め込みリソースとして設定するのを忘れましたが、テストは引き続き機能しました。ただし、クエリはデータベースに送信されなかったため、基本的には何も行われませんでした。
マップされていない型に対して CreateCriteria() または List() が失敗しないのはなぜですか?そして、その特定の要件をテストするにはどうすればよいでしょうか?
編集: 次の行が例外をスローしていることがわかったが、最初のケースについてまだ疑問がある場合
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()
解決
私にはわかりませんが、どうやら NHibernate でもわからないようです。見る https://nhibernate.jira.com/browse/NH-2183 この問題に関して報告されたバグについては。彼らはまだ取り組んでいます。
所属していません StackOverflow