小编CH1*_*H15的帖子

Request.GetOwinContext().getManager <ApplicationUserManager>在单元测试帐户控制器web api时返回null

我正在尝试为我的帐户控制器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中,我有以下上下文类: …

unit-testing asp.net-web-api usermanager

5
推荐指数
0
解决办法
755
查看次数