使用Moq和MS测试进行单元测试

时间:2018-09-05 10:42:51

标签: c# unit-testing moq mstest

我是这个东西的新手,我读了一下test,但是我不知道该如何测试此功能:

   [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 :(得分:0)

您必须在方法中使用路径,因此都可以对其进行测试以具有完整的覆盖范围。假设将AppUserManager与di一起注入到类中,则可以创建它的模拟版本,该模拟版本在方法FindByNameAsync(username)或用户上返回null。断言将测试NotFound和返回的Ok内容。

您还可以编写测试以检查属性是否存在并具有正确的内容。这样可以避免输入错误和路线或角色发生意外更改。