У меня есть метод
public async Task<ActionResult> CreateRole(RoleModel roleViewModel)
{
if (ModelState.IsValid)
{
RoleModel role = new RoleModel(roleViewModel.Name);
// Save the new Description property:
role.Description = roleViewModel.Description; // <--- Here you have assign the Description value
IdentityResult roleResult = await roleManager.CreateRoleAsync(role);
if (roleResult.Succeeded)
{
return RedirectToAction("Index");
}
else
{
AddErrorsFromResult(roleResult);
}
}
return View(roleViewModel);
}
, который создает роль, он работает правильно, но когда я хочу сделать фиктивный тест, у меня нулевой IdentityResult.Я не могу понять, в чем проблема.
мой тест
public async Task CanCreateRoleAsync()
{
//arrange
Task<IdentityResult> successResult = Task.FromResult(IdentityResult.Success);
Mock<IRoleManagerRepository> mockRole = new Mock<IRoleManagerRepository>();
Mock<IUserManagerRepository> mockUser = new Mock<IUserManagerRepository>();
RoleController controller = new RoleController(mockRole.Object, mockUser.Object);
RoleModel model = new RoleModel { Id = "test-test-test-test", Name = "test", Description = "test user" };
mockRole.Setup(m => m.CreateRoleAsync(model)).Returns(successResult);
//action
ActionResult result = await controller.CreateRole(model);
//assert
Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));
}
и метод, который создает роль
public async Task<IdentityResult> CreateRoleAsync(RoleModel applicationRole)
{
IdentityResult result = await userRole.CreateAsync(applicationRole);
return result;
}
null в этой точке
и ошибка называется NullReferenceException object reference does not indicate an object instance.