この瞬間、私は自分自身を食べています。Entity Framework がテストできないようです。作業単位、moq、またはレポパターンを使用する投稿やスレッドをたくさん読みました。
私は、アプリケーションのアーキテクチャをあまり変更できない段階にあります。現時点では、アプリケーションは完全に機能しますが、コード カバレッジを高くする必要があることを確認するため、テストを行っています。
テストのために、私は「偽のコンテキスト」メソッドを使用しています。ここでは、偽のコンテキストをモックに使用し、実際のコンテキストをデータベースへの接続に使用できます。
これを例として使用しました。 http://romiller.com/2010/09/07/ef-ctp4-tips-tricks-testing-with-fake-dbcontext/
そこでは、コンテキストが分割され、インターフェイスとして使用されていることがわかります。お気に入り:
public interface IEmployeeContext
{
IDbSet Department Departments { get; }
IDbSet Employee Employees { get; }
int SaveChanges();
}
public class EmployeeContext : DbContext, IEmployeeContext
{
public IDbSet Department Departments { get; set; }
public IDbSet Employee Employees { get; set; }
}
public class FakeEmployeeContext : IEmployeeContext
{
public FakeEmployeeContext()
{
this.Departments = new FakeDepartmentSet();
this.Employees = new FakeEmployeeSet();
}
public IDbSet Department Departments { get; private set; }
public IDbSet Employee Employees { get; private set; }
public int SaveChanges()
{
return 0;
}
}
}
したがって、テスティングとすべてが機能します。私ができないように見える唯一のことは、変更されたかどうかを確認する .State を含むコントローラーをテストすることです
これはインターフェイスを使用するため、それをインターフェイス コンテキストに追加する必要があります。そして、新しいものを作成します。または、何か不足していますか?そのコンテキストでメソッド全体を作成する意図ではない可能性があります..どうすればこれを機能させることができますか