我正在使用Moq和Asp Identity但是当我使用UserManager时这只得到异步方法,这是我的代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Person person)
{
if (_personRepository.Exist(person.Identificaction))
{
person.IdUserCreate = _userManager.FindByName(User.Identity.Name).Id;
try
{
_personRepository.Save(person);
}
catch (Exception)
{
////
}
}
else
///
return RedirectToAction("Create");
}
我的PersonRepository,
公共..... { rgContext _context = new rgContext();
public void Save(person Entity)
{
_context.Person.Add(Entity);
_context.SaveChanges();
}
}
测试方法:
[TestMethod]
public void CreateVoter_Should_Save_Voter()
{
var MockPersonRepository = new Mock<IEntity<Person>>();
var UserManger = new Mock<rgUserManager>();
MockPersonRepository.Setup(c => c.Exist("2222222")).Returns(true);
UserManger.Setup(c => c.**FindByNameAsync**("admin@admin.com")).Returns(Task.FromResult(new rgUser() { Id = 1 }));
//////
}
我在这里宣布UserManger时,只有异步方法,例如:
我需要使用同步方法,因为这个应用程序非常小,但这就是踢我的......
我希望你能提供帮助:p
Pd:我正在使用统一的DI。
答案 0 :(得分:2)
I know this post is old, but do you have your using statement in the class?
using Microsoft.AspNet.Identity;