我一直在试图弄清楚如何对我的应用程序进行单元测试,但我不太明白所有东西是如何组合在一起的。
我遵循了 John Papa 的 PluralSight (SPA) 教程,并以完全相同的方式构建了我的模型、存储库和工作单元。不幸的是,他没有提供任何关于我们如何进行单元测试的示例。
我玩过 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 和存储库模式,那将是伟大的!