Модульное тестирование с moq и ms test - PullRequest
0 голосов
/ 05 сентября 2018

Я новичок в этом деле и читаю о тестировании, но не могу понять, как проверить эту функцию:

   [Authorize(Roles = "admin")]
    [Route("user/byUsername/{username}")]
    public async Task<IHttpActionResult> GetUserByName(string username)
    {
        var user = await this.AppUserManager.FindByNameAsync(username);

        if (user != null)
        {
            return Ok(this.TheModelFactory.Create(user));
        }

        return NotFound();

    }

Я хочу использовать Moq и MS Test. Спасибо.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы должны использовать пути в вашем методе, поэтому оба они могут быть проверены, чтобы иметь полное покрытие. Предполагается, что AppUserManager внедряется в класс с помощью di. Вы можете создать его фиктивную версию, которая возвращает нулевое значение для метода FindByNameAsync (имя пользователя) или пользователя. Assert будет проверять NotFound и возвращенный Ok с содержимым.

Вы также сможете написать тест для проверки наличия атрибутов и правильного содержания. Это защитит вас от опечаток и неожиданных изменений в маршруте или ролях.

...