asp.net 如何从Resharper的测试覆盖中排除RazorPage.ExecuteAsync方法?

fdbelqdn  于 2023-07-01  发布在  .NET
关注(0)|答案(1)|浏览(123)

当前项目有一个Razor页面集合,该集合具有关联的PageModel。页面模型在某种程度上实现了业务逻辑,因此需要进行单元测试。页面模型本身是基本的,具有可模拟的注入服务,因此可以直接进行测试。

public class CreateBranchModel : PageModel
{
    [BindProperty]
    public string Name { get; set; }

    [BindProperty]
    public string GuidId { get; set; }

    private readonly IContextService _context;

    public CreateBranchModel(IContextService context)
    {
        _context = context;

        Name = string.Empty;
        GuidId = string.Empty;
    }

    public void OnGet(string guidId)
    {
        GuidId = guidId;
    }

    public async Task<IActionResult> OnPost(string guidId)
    {
        if (string.IsNullOrEmpty(Name))
        {
            ModelState.AddModelError("NameEmpty", "The name of the branch should not be empty");
            return Page();
        }

        await _context.CreateNewBranch(GuidId, Name);
        return RedirectToPage("/ViewAll/Branches", new{ siteGuidId = guidId });
    }
}

问题是ExecuteAsync方法,我假设它是从RazorPage类中提取的。

因为它是微软的代码,我真的不想为应用程序中的每个页面调用和单元测试它。
在Resharper中是否有一种方法可以“排除”一个特定的继承方法?

t5fffqht

t5fffqht1#

您可以尝试通过在Pages类中为方法ExecuteAsync添加覆盖过滤器来过滤dotCover结果(see official docs)。

相关问题