Nunit、Ninject、MVC2、および ADO.Net Entity Data Model を使用して、頭を悩ませようとしています。
SqlProductsRepository クラスをインスタンス化する ProductsController があるとします。
public class ProductsRepository : IProductsRepository
{
public MyDbEntities _context;
public ProductsRepository()
{
_context = new MyDbEntities();
}
public IList<Product> GetAllProducts()
{
return (from p in _context.Products select p).ToList();
}
}
public class ProductsController : Controller
{
public ActionResult ProductsList()
{
ProductsRepository r = new ProductsRepository();
var products = r.GetAllProducts();
return View(products);
}
}
ProductsRepository で単体テストを実行して、正しいデータが返されることを確認したいのですが、テスト クラスの記述方法がわかりません。
これまで読んだすべてのチュートリアル/ドキュメントは、IProductsRepository を使用して Mock オブジェクトを作成し、Controller を注入してテストすることを示しています。
これは、具体的な実装をバイパスしているように思えます。
MyDbEntities は、ADO.Net Entity Data Model .edmx から取得されます