2011-08-11 9 views
0

私は.NET開発者であり、データアクセスレイヤーのテストを行っています。私は偽のリポジトリを使うテストをしています - 私はMoqとNinjectを使ってそれを達成しました。Entitity Framework 4.1 - コードファースト - ユニットテストデータアクセスレイヤー

私はEntityFramework 4.1のコードファーストモデルを頭に浮かべています。私はCRUDルーチンのプロトタイプを作りたいと思います。これはMVCアプリケーションなので、エンティティはコンテキストによって追跡されません。

私には、データベースを変更するテストを書いているのは間違っています。これらのテストを実行するたびにデータベースをクリアする必要があります。これはCRUDルーチンをテストする唯一の方法ですか?

ありがとうございました

答えて

1

データにアクセスしないとどのようにデータアクセスをテストすると思いますか?はい、データアクセスは実データベースに対してテストする必要があります。あなたの問題には非常に簡単な回避策があります。テストが終了したら、テストトランザクションとロールバックの変更を行います。このような基本クラス(NUnit)を使用することができます:

[TestFixture] 
public abstract class BaseTransactionalTest 
{ 
    private TransactionalScope _scope = null; 

    [SetUp] 
    public void Initialize() 
    { 
     _scope = new TransactionalScope(...);   
    } 

    [TearDown] 
    public void CleanUp() 
    { 
     if (_scope != null) 
     { 
      _scope.Dispose(); 
      _scope = null; 
     } 
    } 
} 
関連する問題