マップされていない型に対して session.CreateCriteria(typeof(…)) が失敗しないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/4033934

質問

作成するエンティティごとに、データベースから 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 この問題に関して報告されたバグについては。彼らはまだ取り組んでいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top