用于PATCH端点的Web Api单元测试

时间:2017-02-22 15:17:33

标签: web-services unit-testing validation asp.net-web-api http-patch

我正在尝试在我的web api应用程序中开发PATCH端点。在更新模型中,我具有所需数据和一些自定义属性的属性。由于我发现在PATCH端点中没有按预期执行属性验证,我需要使用如下方法触发验证

private void Validate(object model, Type type)
{
    var validator = Configuration.Services.GetBodyModelValidator();
    var metadataProvider = Configuration.Services.GetModelMetadataProvider();

    HttpActionContext actionContext = new HttpActionContext(
        ControllerContext, Request.GetActionDescriptor());

    if (!validator.Validate(model, type, metadataProvider, actionContext, String.Empty))
    {
        throw new HttpResponseException(Request.CreateErrorResponse(
            HttpStatusCode.BadRequest, actionContext.ModelState));
    }
}

这个逻辑对我来说很好。问题是,当我尝试为PATCH端点编写单元测试时,测试失败,因为Request.GetActionDescriptor()返回null。也许我需要以不同的方式设置我的控制器。有任何想法吗?也许我需要以某种方式设置Request对象

0 个答案:

没有答案