コードのみの永続性を使用して、MVC2、Entity Framework、および CTP4 で遊んでいます。ドメイン オブジェクトの MSUnit でいくつかの単体テストを作成しました。これには、このパラダイムで永続化がどのように機能するかを確認するためのものも含まれます。これらのテストには Sql Server CE 4.0 を使用しています。1 つの問題を除いて、これは問題なく動作します...同じクラス内のテスト間でデータが保持されているようです。
Java、Hibernate Annotations、および HSQLDB を使用した経験があり、その場合、テストの実行ごとに DB が作成され、破棄されます。ただし、SqlCompact では、同じテスト データ フィクスチャを使用するいくつかのテストがあり、両方を実行すると制約違反が発生します。
テーブルをドロップ/データを明示的に削除するためのいくつかのハックを介してこれを修正できます[TestCleanup]
が、この場合に SQL Compact を使用するときに、各テストで新しい DB を確実に開始する適切な方法は何ですか? 答えは簡単だと思いますが、どこにも見つからないようです。ありがとう。
編集:今のところ、私はこれをやっていますが、うまくいきますが、好きではありません。より良いアイデアを歓迎します:
[TestCleanup]
public void teardown()
{
mgr.Database.DeleteIfExists();
mgr.Database.Create();
}