1
我試圖測試MVC的行動,所以我創建IRepository和MockRepository如何使用Code First測試MVC操作?
public class Repository : DbContext, IRepository
{
public IDbSet<TEntity> SomeEntities { get; set; }
}
public interface IRepository : IDisposable
{
IDbSet<TEntity> SomeEntities { get; set; }
int SaveChanges();
}
隨着Create
和Delete
行動是簡單,但堅持了Edit
行動:
private IRepository repository;
public ActionResult Edit(TEntity entity)
{
if (ModelState.IsValid)
{
repository.Entry(entity).State = EntityState.Modified;
repository.SaveChanges();
return RedirectToAction("Index");
}
return View(entity);
}
所以我看到兩個方法來解決這個問題:
我應該添加到IRepository新方法
DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;
我該怎麼辦?
DbContext.Entry
方法返回非常具體DbEntityEntry<TEntity>
類型?或改變我更新實體的方式?建議如何做到這一點?