2011-03-15 6 views
1

現在、プロジェクトでNHibernateを使用しており、NDBUnitを使用して単体テスト用のデータをDBに取り込んでいます。私がしたいのは、データをロードするときにNHibernateによって返されたクラスインスタンスに対してNDBUnitによって使用されるXMLを検証することです。NDBUnitでNHibernateマッピングを確認する

私は、すべてのプロパティを取得するためにクラスでリフレクションを使用して、NDBUnit XMLデータセットでそれらのカラム値を検索するように見えます。私は車輪を再発明しているかどうか、またはすべてのNHibernateマッピングが正しいことを確認するためのより良い選択肢があるかどうかはわかりません。

答えて

0

Fluent NHibernateのPersistenceSpecificationを確認してください。そのクラスにはFluent NHibernateに依存するものは何もありません。以前は普通のNHibernate hbm.xmlファイルをテストするときに使ったことがあります。このような

http://wiki.fluentnhibernate.org/Persistence_specification_testing

たとえば、あなたが書くことができますテスト:

[Test] 
public void CanCorrectlyMapEmployee() 
{ 
    new PersistenceSpecification<Employee>(session) 
     .CheckProperty(c => c.Id, 1) 
     .CheckProperty(c => c.FirstName, "John") 
     .CheckProperty(c => c.LastName, "Doe") 
     .VerifyTheMappings(); 
} 

を強くお勧めします。

+0

これは、インストールされたデータベースを使用している場合にはうまくいくかもしれませんが、インメモリデータベース(sqliteなど)を使用している場合は、統合テストを推奨します。有用。理由は、メモリ内のデータベースがマッピングから作成され、レコードを挿入できるかどうかを確認するテストがNHibernate ORM自体をテストするためです。 –

関連する問題