Я хочу дать возможность администратору изменить пароль пользователя.ASP.Net Identity 2 RemovePassword Mocking
Я делаю это так:
var result = await this.UserManager.RemovePasswordAsync(user.Id);
if (result.Succeeded)
{
result = await this.UserManager.AddPasswordAsync(user.Id, viewModel.MotDePasse);
if (result.Succeeded)
{
return RedirectToAction("Edit", new { Id = viewModel.UserName });
}
else
{
viewModel.Errors = string.Join("<br />", result.Errors);
}
}
else
{
viewModel.Errors = string.Join("<br />", result.Errors);
}
Когда я бегу, он работает. Но при попытке выполнить его тестирование я получаю сообщение об ошибке (в объекте результата): «Name Connot be null».
В моем модульном тестировании у меня есть TestInitialize вроде этого:
_mockUserStore = new Mock<IUserStore<ApplicationUser>>();
var passwordStore = this._mockUserStore
.As<IUserPasswordStore<ApplicationUser>>();
passwordStore.Setup(pm => pm.FindByIdAsync(It.IsAny<string>()))
.Returns(Task.FromResult<ApplicationUser>(new ApplicationUser() { Id = "id", Nom = "Name1" }));
_userManager = new UserManager<ApplicationUser>(this._mockUserStore.Object);
Как я могу решить эту проблему? Имя, на котором объект имеет значение null?
Не могли бы вы добавить трассировку стека? UserManager, возможно, вызывает дополнительные функции в вашем хранилище пользователей, которые вы не настроили в своем тесте. Или что-то совсем другое! ;-) –
В стеке вызовов ничего не происходит (или я не знаю, чтобы получить более сложный стек вызовов), как только я не поймаю никакого исключения: просто result.Errors. – boblemar