小编Saa*_*san的帖子

.net core mvc 模拟身份和声明并测试用户是否有声明

我正在尝试对我的控制器逻辑进行单元测试,它是一个(.Net core 2 mvc 应用程序),我有一个控制器,如果用户有特定声明,它会返回项目的详细信息,并且我想使用 XUnit 对其进行单元测试。

这是控制器:

public async Task<IActionResult> Details(int? id)
{
    if (id == null)
    {
        return NotFound();
    }

    var controlException = await _context.ControlException.FirstOrDefaultAsync(m => m.Id == id);

    if (controlException == null)
    {
        return NotFound();
    }
    if (User.HasClaim("control Claim", "control Claim"))
    {
            return View(controlException);
    }
    else
    {
        return RedirectToAction("AccessDenied", "Account");
    }

}
Run Code Online (Sandbox Code Playgroud)

我的单元测试代码是:(GetContextWithData()返回内存测试数据库)

[Fact]
public async Task VerifyDetailsViewType()
{

    using (var context = GetContextWithData())
    using (var _controller = new ControlExceptionsController(context))
    {      
        var userStore = new …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing xunit asp.net-core-mvc asp.net-core-identity

6
推荐指数
1
解决办法
3864
查看次数