я был тест начального блока, используя фальшивый классПередразнивало хранилище не получает заселенно
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);
Но в этом случае хранилище пуста. Что мне не хватает? Благодарю.
Update
Незначительные изменения, чтобы получить ответ принят на работу. 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 };