2009-07-15 14 views
1

これで、NHibernateを使用してデータレイヤアクセスを維持する準備ができました。私はその時点までDDDを使用し、私はユニットテストとテストサイトのために偽を使用します。NHibernateを使用して本番用のスキーマを生成するためのベストプラクティス

NHibernateコンクリートリポジトリのユニット/統合テストでSchemaExportを使用できますが、テストサイトで使用するスキーマはどのように生成する必要がありますか?

スキーマを作成して静的データを挿入するテストで特別なクラスを作成する必要がありますか?データベースが作成されていない場合は、サイトの起動時にスキーマを生成する必要がありますか?

答えて

3

個人的に同様の質問がありますビルドスクリプトとDDLスクリプトファイルはWiXによって取得され、MSIパッケージに含まれます(インストール時にデータベース全体が生成されます)。私はちょうどあなたのユニットを実行するために、マルクスの提案で行くと思いますあなたの完全なビルドスクリプトについては

0

シンプルなシナリオでは、単体テストを使用することができます。 schemaexportを実行するCreateSchemaと呼ばれるユニットテストを作成するだけです。その後、他のテストを実行する前に実行します。

new SchemaExport(config).Execute(ddlScript => { 
    using (var writer = new StreamWriter(fileName, true)) 
    { 
     writer.Write(ddlScript); 
     writer.Flush(); 
    } 
}, false, false); 

このコンソールアプリはのステップとして実行:

は、私はすべてのマッピングをロードし、以下のようにSchemaExportのを実行し、小さなコンソールアプリケーションを使用したい here on STO

+0

私の問題は、テスト用のスキーマを作成するのではなく、本番サイト用のスキーマを作成することです。 –

0

は をテストし、私はあなたのテストプロジェクトのアプリの設定で

<property name="hbm2ddl.auto">create-drop</property>

を入れたい - これがドロップされますと、すべてのテストが実行されるたびにスキーマを再作成してください。各ユニットテストでは、テストする必要のあるデータを追加できます。

関連する問題