Как написать тестовый пример с moq ApplicationUser, ApplicationContextdb, IEmailSender и IConfirguration - PullRequest
0 голосов
/ 28 января 2019

Нужна ваша помощь, чтобы написать пример модульного теста в удостоверении пользователя ASP.net.

В текущем проекте мы My контроллер, использующий инъекцию зависимостей.Он внедряет все нижеуказанные классы

  • ApplicationUser "используется для целей идентификации"
  • ApplicationDbContext "используется для структуры сущностей"
  • Iemailsender "userd для отправки почты"
  • IConfiguration "Цель Iconfirguration"

У меня есть контроллер, у которого есть инъекция зависимостей, как moq все параметры, используя единицу x.

Я пробовал следующие вещи, но неуверен, как смоделировать все классы внедрения зависимости интерфейса.Найдите приведенный ниже контроллер.

, когда я запускаю этот тест _userManager user list равен null.пожалуйста, помогите мне в этом, как данные поступят в _usermanger

//This below m controller for which i need to write a x unit testcase 
   public UsersController(
        UserManager<ApplicationUser> userManager,
        ApplicationDbContext applicationDbContext,
        IEmailSender emailService,
        IConfiguration configuration)
    {
        _userManager = userManager;
        _applicationDbContext = applicationDbContext;
        _emailService = emailService;
        _configuration = configuration;
    }
   //controller Method for which i need to write a test case 
   [HttpGet]
    [Route("User")]
    [AllowAnonymous]
    public async Task<IActionResult> AppUser([FromQuery] string username)
    {
        var user = await _userManager.FindByNameAsync(username);
      return ok(user);
    }

  // This is my test message which I'm writing 
   ApplicationUser testUser = new ApplicationUser { UserName = "testuser1"};     
        var mockStore = new Mock<IUserStore<ApplicationUser>>();
        var mockUserManager = new Mock<UserManager<ApplicationUser>> 
       (mockStore.Object, null, null, null, null, null, null, null, null);
        mockStore.Setup(x => x.CreateAsync(appuser, 
       It.IsAny<CancellationToken>()))
      .Returns(Task.FromResult(IdentityResult.Success));
        mockStore.Setup(x => x.FindByNameAsync(testUser.UserName, It.IsAny<CancellationToken>()))
                     .Returns(Task.FromResult(testUser));
        var fakeEmailSender = new Mock<IEmailSender>();
        var fakeConfiguration = new Mock<IConfiguration>();

        var Controller = new UsersController(mockUserManager.Object, 
          context, fakeEmailSender.Object, fakeConfiguration.Object);
        var res = Controller.AppUser("testuser1");
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...