首页 > 解决方案 > .NET Core 中自定义过滤器属性的单元测试

问题描述

如何使用单元测试或集成测试来测试以下类?我用 NUnit 还是 xunit 都没有关系。我只想知道测试我的自定义过滤器属性的过程。

public class CheckDeleteFilterAttribute : ActionFilterAttribute
{

    private readonly IUnitOfWork _unitOfWork;

    public CheckDeleteFilterAttribute(IUnitOfWork unitOfWork)
    {
       
        _unitOfWork = unitOfWork;
    }

    public override async void OnActionExecuting(ActionExecutingContext context)
    {
        var userId = ((int)context.ActionArguments["userId"]);
        var foundUser = await _unitOfWork.User.GetUserById(UserSession.UserID);
        var foundPermission = foundUser.FpUserRoles.FirstOrDefault().Roles.Permissions.Any(q => q.Name == PermissionEnum.AS_UserManagement.ToString());
        if (userId != UserSession.UserID && !foundPermission)
        {
            // don't continue
            context.Result = new JsonResult(new {message = "You cannot delete your own record"}) {StatusCode = StatusCodes.Status401Unauthorized};
        }
    }
}

标签: unit-testing.net-coreintegration-testingasp.net-core-3.1

解决方案


推荐阅读