我對LINQ到SQL適配器類:創建System.Data.Linq.Table試驗
public interface IAdapter : IDisposable
{
Table<Data.User> Activities { get; }
}
Data.User是的LINQ到SQL指向定義的對象用戶表中的持久性。
這種情況的實現方式如下:
public class Adapter : IAdapter
{
private readonly SecretDataContext _context = new SecretDataContext();
public void Dispose()
{
_context.Dispose();
}
public Table<Data.User> Users
{
get { return _context.Users; }
}
}
這使得嘲諷持久層容易單元測試,我可以回到我想要的任何數據的收集用戶(Rhino.Mocks):
Expect.Call(_adapter.Users).Return(users);
問題是我無法創建對象'用戶',因爲構造函數不可訪問,並且類表被封閉。我試過的一個選擇是讓IAdapter返回IEnumerable或IQueryable,但問題是我沒有訪問ITable提供的方法(例如InsertOnSubmit())。有沒有一種方法可以在單元測試場景中創建假表,這樣我可以成爲一個快樂的TDD開發人員?