1
我使用的是假類嘲笑庫沒有得到填充
var dbContext = new FakeMyDbContext
{
Users = { new IdentityUser {
Id="94ccfbae-8567-405e-8e2e-70a038cdde40" }
},
};
var repository = new MyRepository<IdentityUser>(dbContext);
有一個初步的單元測試當我運行它,我有1個用戶庫,罰款。我想要使用Moq,所以我試過這個
var user = new Mock<IdentityUser>();
user.Setup(x => x.Id).Returns("94ccfbae-8567-405e-8e2e-70a038cdde40");
var users = new Mock<IDbSet<IdentityUser>>();
users.Setup(x => x.Add(user.Object));
var dbContext = new Mock<MyDbContext<IdentityUser>>();
dbContext.Setup(x => x.Users).Returns(users.Object);
var repository = new MyRepository<IdentityUser>(dbContext.Object);
但是在這種情況下版本庫是空的。我錯過了什麼?謝謝。
更新
一個小的改動,以獲得接受的答案工作。 DbSet不能直接訪問,從而創造了一個FakeDbSet
public class FakeDbSet<T> : IDbSet<T> where T : class
,並用於
var user = new IdentityUser { Id = "94ccfbae-8567-405e-8e2e-70a038cdde40" };
IDbSet<IdentityUser> users = new FakeDbSet<IdentityUser> { user };