簡體   English   中英

如何對實體上下文進行單元測試

[英]How I can unit-test my entity context

我正在研究實體框架,並且想對我的應用程序進行單元測試。 問題是EntityContext。 我正在使用Moq庫。 Moq可用於接口和抽象類。 但是這里的問題是EntityContext是從既不是抽象類也不是接口的DbContext派生的。 如何為上下文提供最小對象。 我試圖找到最佳實踐,但是大多數職位都已經很老了(2、3歲)。 我正在使用EF 5.0,我假設Microsoft或其他公司應該做一些事情來測試EntityContext。

public class Repository
{
private EntityContext _context;
public EntityContext Context;

    public Repository()
    {
        _context = new EntityContext();
    }

    internal Repository(MockContext mockContext)  // Mock Context. Is it possible?
    {
        _context = mockContext;
    }
}

注意:很抱歉再次出現問題,但是我找不到有關此主題的最新問題。

我要做的是使EntityContext實現一個接口。 假設EntityContext公開了一個雇員列表和一個部門列表。 您將執行以下操作:

public interface IEntityContext
{
    IQueryable Departments { get; set;}
    IQueryable Employees { get; set;}
}

在您的存儲庫中,需要一個IEntityContext實現。 在生產代碼中發送實際的實現EntityContext。 在單元測試中,在指定您的期望后發送Mock <IEntityContext>()。Object。 另一個選擇是實現一個FakeEntityContext,它實現IEntityContext並在單元測試中用作內存中的DB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM