我正在使用Entity Framework 6构建C#MVC5项目的单元测试。我正在尝试使用Moq模拟我的BlogRepository,然后将其用作我要测试的BlogController的参数。实际上,我可以很好地进行单元测试,但是要做到这一点,我创建了一个Fake BlogRepository类,当时我更想知道如何使用Moq进行操作。
我得到的问题是,控制器希望参数为IBlogRepository类型,但仅将其视为Mock。所以我得到一个无效的参数错误。我以为这就是应该使用的方式。
这是我创建模拟的尝试:
Mock<IBlogRepository> blogRepo = new Mock<IBlogRepository>();
blogRepo.Setup(t => t.GetBlogByID(It.IsAny<int>())).Returns<Blog>(blog => new Blog());
这是控制器的开始:
public class BlogController : Controller
{
IBlogRepository blogRepo;
public BlogController(IBlogRepository repoBlog)
{
blogRepo = repoBlog;
}
我究竟做错了什么?还是我在这里有一个错误的想法。任何帮助,将不胜感激。谢谢。
你应该通过blogRepo.Object
不blogRepo
给您的控制器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句