Нужна ваша помощь, чтобы написать пример модульного теста в удостоверении пользователя 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");
}