アプリケーションを単体テストする方法を理解しようとしていますが、すべてがどのように組み合わされるのかよくわかりません。
PluralSight (SPA) に関する John Papa のチュートリアルに従い、まったく同じ方法でモデル、リポジトリ、および作業単位を構築しました。残念ながら、彼はこれを単体テストする方法の例を提供していません。
私はMoqをいじってみましたが、その方法を説明するオンラインのリンクはほとんど見つかりませんでしたが、残念ながらどこにも行きませんでした.
コンテキストを提供するコード:
public interface IRepository<T> where T : class
{
IQueryable<T> GetAll();
T GetById(int id);
void Add(T entity);
void Update(T entity);
void Delete(T entity);
void Delete(int id);
}
public interface IFeedbackRepository : IRepository<Feedback>
{
IQueryable<Feedback> GetByFeedbackFor(int id);
}
public class FeedbackRepository : EFRepository<Feedback>, IFeedbackRepository
{
public FeedbackRepository(WebAppDbContext context) : base(context) { }
public IQueryable<Feedback> GetByFeedbackFor(int id)
{
return DbSet.Where(f => f.FeedbackForId == id);
}
}
public interface IWebAppUow
{
void Commit();
IFeedbackRepository Feedbacks { get; }
}
public void TestMethod1()
{
Mock<IWebAppUow> mockUnitOfWork = new Mock<IWebAppUow>();
// THEN ??
}
編集: このリンク ( http://msdn.microsoft.com/en-us/data/dn314429.aspx ) を見つけました。これは、その方法を説明していますが、DbSet で直接動作します。この例を UoW とリポジトリ パターンを使用するように変更する方法を誰かが説明できれば、それはすばらしいことです。