试图在网上找到这个答案很困难,所以我希望我不会在这里问一个愚蠢的问题。
我有两个班级,User
和Login
。 User
可以包含零个或多个Login
个。 Login
只有一个User
。 (ASP.NET标识)
构建我的IUserLoginStore
实现,我写了这些方法:
public Task<IList<UserLoginInfo>> GetLoginsAsync(User user)
{
return Task.Run(() => GetLogins(user));
}
private IList<UserLoginInfo> GetLogins(User user)
{
using (var context = _contextFactory.Get())
{
user = context.Users.Attach(user);
var logins = new List<UserLoginInfo>();
logins.AddRange(user.Logins.Select(x => new UserLoginInfo(x.LoginProvider, x.ProviderKey)));
return logins;
}
}
...现在,在单元测试中,我正在嘲笑context.Users.Attach(User user)
方法来返回一个填充User
的{{1}}对象,但是......我不是确定EF是否会这样。
如果我将实体附加到上面的EF数据库上下文,但是之前分离的实体由于延迟加载而没有填充Logins属性,我是否能够在附加后访问Logins属性,或者它是否null,执行此方法时抛出IList<Login>
?
我还没有准备好开始集成测试,所以我无法验证行为是什么。因此,我不知道我的单元测试是否有效。有人可以教我这个吗?