如何模拟存储库以用作Controller的参数?

安德鲁·波兰德

我正在使用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;
    }

我究竟做错了什么?还是我在这里有一个错误的想法。任何帮助,将不胜感激。谢谢。

亚历山大·科比连斯基(Oleksandr Kobylianskyi)

你应该通过blogRepo.ObjectblogRepo给您的控制器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

模拟表达参数到存储库方法

如何添加到模拟存储库

如何使用模拟存储库测试CRUD?

Spring Boot Controller测试-模拟存储库但测试实际服务

如何存储/检索用作模板参数的成员函数指针?

如何将Artifactory用作Go模块的本地存储库

如何在IntelliJ中将Bitbucket用作存储库

如何从GitHub克隆项目但将Bitbucket用作远程存储库

模拟接口存储库

如何从JHipster spring controller检索存储库?

单元测试如何使用Mockito模拟存储库

如何模拟Save方法的行为来测试我的存储库?

使用Axon框架时如何模拟Spring Boot存储库

如何在Java中模拟MongoDB存储库方法

如何使用Entity Framework Core模拟异步存储库

如何在Visual Studio测试中模拟数据存储库?

Service for Unit测试中存储库的模拟方法如何测试

如何对传递给模拟存储库的对象进行断言

存储库不能用作方法的通用类型中的类型参数

模拟存储过程的输出参数

模拟的存储库返回null

服务中的模拟存储库

如何为存储库方法设置MVC模拟设置和返回值,该方法具有on out参数和返回类型

Maven-将远程存储库也用作本地存储库

如何将用户输入存储在变量中,以将其用作bat文件中的参数?

MySQL如何在同一SELECT语句中将存储函数的结果用作参数

带有JDBC的Spring会话-如何将单独的数据库用作会话存储

如何使AWS CodeDeploy能够将AWS CodeCommit用作Git存储库?

如何从存储库传递参数到Dao上的查询?