我已經看到了存儲庫模式,非常簡單和直觀的一些實現單元測試,在這裏掛形式其他的答案在計算器Repository模式,並從內存
http://www.codeproject.com/Tips/309753/Repository-Pattern-with-Entity-Framework-4-1-and-C http://www.remondo.net/repository-pattern-example-csharp/
public interface IRepository<T>
{
void Insert(T entity);
void Delete(T entity);
IQueryable<T> SearchFor(Expression<Func<T, bool>> predicate);
IQueryable<T> GetAll();
T GetById(int id);
}
public class Repository<T> : IRepository<T> where T : class, IEntity
{
protected Table<T> DataTable;
public Repository(DataContext dataContext)
{
DataTable = dataContext.GetTable<T>();
}
...
如何設置它在進行單元測試時從內存中運行?有什麼辦法從內存中的任何東西構建一個DataContext或Linq表?我的想法是創建一個集合(List,Dictionary ...)並在單元測試時對其進行存根。
謝謝!
編輯: 我需要的是這樣的:
- 我有一類書
- 我有一個類庫
在
Library
構造函數中,我初始化存儲庫:var bookRepository = new Repository<Book>(dataContext)
而且
Library
方法使用的存儲庫,這樣public Book GetByID(int bookID) { return bookRepository.GetByID(bookID) }
測試時,我想提供一個存儲環境。在生產中,我將提供一個真正的數據庫上下文。
我添加了一些示例代碼下面您的要求。 –