Я пытаюсь написать пример модульного теста для входа в систему с использованием UserManager и SignInManager.
Хотя я передаю правильные учетные данные пользователя, когда мой код достигает этой строки контроллера, я получаю результат как нулевой. var result = await _signInManager.PasswordSignInAsync (model.userNameGst, model.Password, false, false);
Мой тестовый контроллер выглядит следующим образом
public class UserManagementControllerTest
{
private AccountController _userController;
private Mock<UserManager<UserField>> _mockUserManager;
private Mock<SignInManager<UserField>> _mockSignInManager;
public UserManagementControllerTest()
{
var mockConfig = new Mock<IConfiguration>();
var mockEmail = new Mock<IEmailSender>();
var userStoreMock = new Mock<IUserStore<UserField>>();
_mockUserManager = new Mock<UserManager<UserField>>(userStoreMock.Object,
null, null, null, null, null, null, null, null);
var contextAccessor = new Mock<IHttpContextAccessor>();
var userPrincipalFactory = new Mock<IUserClaimsPrincipalFactory<UserField>>();
_mockSignInManager = new Mock<SignInManager<UserField>>(_mockUserManager.Object,
contextAccessor.Object, userPrincipalFactory.Object, null, null, null);
_userController = new AccountController(_mockUserManager.Object, _mockSignInManager.Object, mockConfig.Object, mockEmail.Object);
}
[Fact]
public async Task Test_LoginWhenCalledRetunrsResponse()
{
var mockUser = new Users()
{
UserName = "PepsiInd123",
Password = "1234",
confirmpassword = "1234",
userNameGst = "PepsiInd123",
};
var result = await _userController.Login(mockUser);
Assert.IsType("".GetType(), result.GetType());
}
}
Когда он достигает
var result = await _signInManager.PasswordSignInAsync(model.userNameGst, model.Password, false, false);
Я получаю результат как ноль. Следовательно, мой контрольный пример не проходит. Что я не так делаю?