【问题标题】:Unit testing with moq and ms test使用 moq 和 ms 测试进行单元测试
【发布时间】:2018-09-05 10:42:51
【问题描述】:

我是这个东西的新手,我读过关于 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。谢谢。

【问题讨论】:

  • 您在尝试测试该方法时遇到了什么问题?就你现在的问题而言,它太宽泛了。如果我们要涵盖“如何测试这个功能”,那么我们将不得不给出一个完整的教程。

标签: c# unit-testing moq mstest


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多