ASP.Net.Core userManager.CreateAsync - PullRequest
       7

ASP.Net.Core userManager.CreateAsync

0 голосов
/ 19 марта 2019

Когда я отлаживаю тест, я вижу, что он проходит через await userManager.CreateAsync (пользователь), но затем он переходит к улову, к которому он должен идти, только если он пустой, а это не так.Это контроллер:

public async Task<ActionResult<string>> CreateUser(UserVM userVM)
{
    ApplicationUser user = ModelConverter.ViewModelToModel.GetUser(userVM);

    var x =   await userManager.CreateAsync(user);

    List<ApplicationUser> users = userManager.Users.ToList();

    return user.Id;
}

Это один из тестов, которые я использую:

 public void Should_AddShiftExchangeToUser()
 {
    MPContext context = CleanContext();
    UsersController usersController = new UsersController();
    try
    {
        var x = usersController.CreateUser(new ViewModels.UserVM()).Result;
        var y = usersController.CreateUser(new ViewModels.UserVM()).Result;
        var result = usersController.AddShiftExchange(new ShiftExchangeVM() { RequesterId = x.Value, ReceiverId = y.Value }, x.Value).Result;
        Assert.NotNull(result.Value);
        ShiftExchange shiftExchange = context.shiftExchanges.FirstOrDefaultAsync(s => s.Id == result.Value).Result;
        Assert.NotNull(shiftExchange);
        Assert.NotNull(shiftExchange.Receiver);
        Assert.NotNull(shiftExchange.Requester);
    }
    catch (Exception ex)
    {
        Assert.Null(ex);
    }
}

Тогда я получаю эту ошибку:

Message: Assert.Null() Failure Expected: (null) Actual: System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) ---> 

вопрос, который яесть как пройти остальную часть теста, а не поймать, когда я создаю пользователя.

1 Ответ

0 голосов
/ 19 марта 2019

Я не уверен, что ваша функция пытается сделать. Вы пытаетесь получить пользователя, после чего вы пытаетесь создать пользователя, а затем выводить список всех пользователей перед возвратом идентификатора для исходного запроса получения пользователя.

Если пользователь изначально не существует, тогда

ModelConverter.ViewModelToModel.GetUser(userVM)

будет ли возвращать нулевой объект, когда пользователь не найден, или вызвать исключение? Если это первое, то

return user.Id;

выдаст нулевое исключение.

Кроме того, строки создания и списка пользователей, похоже, не имеют отношения к остальной части функции, поскольку вы ни для чего не используете их ответы. Является ли этот пример кода полной копией функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...