C# 使用moq和ms测试进行单元测试

C# 使用moq和ms测试进行单元测试,c#,unit-testing,moq,mstest,C#,Unit Testing,Moq,Mstest,我不熟悉这方面的东西,我读过关于测试的书,但我不知道如何测试这个函数: [Authorize(Roles = "admin")] [Route("user/byUsername/{username}")] public async Task<IHttpActionResult> GetUserByName(string username) { var user = await this.AppUserManager.FindByNameA

我不熟悉这方面的东西,我读过关于测试的书,但我不知道如何测试这个函数:

   [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();

    }
[Authorize(Roles=“admin”)]
[路由(“user/byUsername/{username}”)]
公共异步任务GetUserByName(字符串用户名)
{
var user=wait this.AppUserManager.FindByNameAsync(用户名);
如果(用户!=null)
{
返回Ok(this.TheModelFactory.Create(user));
}
返回NotFound();
}

我想使用Moq和MS测试。谢谢。

您必须在方法中指定路径,以便可以对这两种方法进行测试,以获得完全覆盖。假设AppUserManager被注入到带有di的类中,您可以创建它的模拟版本,该版本在方法FindByNameAsync(username)或用户上返回null。断言将测试NotFound和返回的Ok的内容


您还可以编写一个测试来检查属性是否存在以及内容是否正确。这将防止您在路线或角色中出现拼写错误和意外更改。

您在尝试测试该方法时遇到了什么问题?你现在的问题太宽泛了。如果我们要讨论“如何测试这个函数”,那么我们必须给出一个完整的教程。