Получение ошибки при создании метода действия Unit Test для входа в систему в тестовом проекте - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь написать пример модульного теста для входа в систему с использованием 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);

Я получаю результат как ноль. Следовательно, мой контрольный пример не проходит. Что я не так делаю?

...