我正在尝试为我的帐户控制器web apis编写一些单元测试,这些测试使用UserManager,但我在以下部分的标题中继续接收null:
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多不同的方法来解决这个问题,因为我已经读过我需要模拟ApplicationUser的一些部分但是没有设法让它们中的任何一个来解决我的问题.下面是我在单元测试教程后实现的一些代码:
public interface IStoreAppContext : IDisposable
{
//IDbSet<User> Users { get; }
DbSet<User> u { get; }
DbSet<SportProgram> SportContext { get; set; }
int SaveChanges();
void MarkAsModified(User item);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图在我的帐户控制器中进行单元测试的api是:(这行下面的"var user ..."是问题开始的地方.它调用此问题标题中的行)
[Route("userProfile/{username}")]
public IHttpActionResult getUserProfile(String username)
{
var user = UserManager.FindByName(username);
if (user != null)
{
db2.MarkAsModified(user);
return Ok(user);
}
else
{
return NotFound();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的TestProject中,我有以下上下文类: …