参数1:无法从'Moq.Mock <System.Data.Entity.DbContext>'转换为'System.Data.Entity.DbContext'

rav*_*avi 3 .net c# nunit unit-testing moq

在我的模拟上下文中,我有以下内容:

 var mockContext = new Mock<DbContext>();
 mockContext.Setup(c => c.Set<Track>()).Returns(mockSet.Object);
Run Code Online (Sandbox Code Playgroud)

当我尝试为我的存储库创建模拟对象时,我使用以下代码

EfRepository<Track> _efTrackRepository = new EfRepository<Shelf>(mockContext);
Run Code Online (Sandbox Code Playgroud)

我得到以下错误,有什么办法可以解决这个问题吗?

错误:

参数1:无法从'Moq.Mock <System.Data.Entity.DbContext>'转换为'System.Data.Entity.DbContext'

Jak*_*rtz 8

你应该用 mockContext.Object

//
// Summary:
//     Exposes the mocked object instance.
public virtual T Object { get; }
Run Code Online (Sandbox Code Playgroud)