作成するすべてのエンティティについて、データベースから1つのレコードをロードするだけの単体テストを作成して、クエリが機能し、データがエンティティに正しく設定できるかどうかを確認します。これは、基本的なマッピングの単体テストと見なすことができます。これにより、タイプのマッピングファイルが存在し、埋め込みリソースとして設定されていることも確認できます。
テストは次のようになります(テストはジェネリック基本クラスに存在します):
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();
アサーションは実行しません。例外をスローせずにこの行が機能するかどうかを確認したいだけです。
あるケースでは、マッピングファイルを埋め込みリソースとして設定するのを忘れましたが、テストは引き続き機能しました。ただし、データベースにクエリは送信されなかったため、基本的には何も実行されませんでした。
マップされていないタイプでCreateCriteria()またはList()が失敗しないのはなぜですか?そして、どうすればその特定の要件をテストできますか?
編集:次の行が例外をスローすることがわかったが、それでも最初のケースについて疑問に思っている場合
session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()