小编yok*_*zor的帖子

如何使用Moq模拟ActionExecutingContext?

我正在尝试测试以下过滤器:

using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.Filters;

namespace Hello
{
    public class ValidationFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.ModelState.IsValid) {
                filterContext.Result = new BadRequestObjectResult(filterContext.ModelState);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图使用Moq模拟ActionFilterAttribute.

我使用的是Mvc 6.0.0-rc1

我的第一次尝试:

var context = new ActionExecutingContext(
                    new ActionContext(Mock.Of<HttpContext>(), new RouteData(), new ActionDescriptor()),
                    new IFilterMetadata[] { filter, },
                    new Dictionary<string, object>(),
                    controller: new object());
Run Code Online (Sandbox Code Playgroud)

但我无法覆盖ModelState.它看起来只是readonly:https://github.com/aspnet/Mvc/blob/6.0.0-rc1/src/Microsoft.AspNet.Mvc.Abstractions/ActionContext.cs#L25

然后我尝试了:

var contextMock = new Mock<ActionExecutingContext>(
                    new ActionContext(Mock.Of<HttpContext>(), new RouteData(), new ActionDescriptor()),
                    new IFilterMetadata[] { filter, },
                    new Dictionary<string, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc unit-testing moq xunit

15
推荐指数
2
解决办法
5603
查看次数

如何在rails-api中响应OPTIONS HTTP方法?

我正在使用rails-api构建一个公共的json api.

我想回应OPTIONS HTTP方法以利用跨源资源共享.

http://www.w3.org/TR/cors/

我这样做:

headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
Run Code Online (Sandbox Code Playgroud)

它可以工作,但有些URL不支持所有HTTP方法.在那些情况下,我撒谎.

我不想为每个URL配置Access-Control-Allow-Methods.

有没有办法根据我的路线响应Access-Control-Allow-Methods?

ruby-on-rails cors http-options-method rails-api

12
推荐指数
1
解决办法
5851
查看次数

如何通过CloudFormation配置“预令牌生成”触发器?

令牌生成前触发器:使用此Lambda触发器,您可以在生成身份令牌之前自定义身份令牌:https : //docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation。 html

我正在寻找一种通过CloudFormation配置此触发器的方法。就像是:

UserPool:
  Type: AWS::Cognito::UserPool
  Properties:
    LambdaConfig:
      # Next line does not work:
      PreTokenGeneration: [lambda ARN]
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html

我找到了其他触发器的文档,但是缺少此触发器。这是缺少的功能还是没有记录?

aws-cloudformation amazon-cognito

5
推荐指数
1
解决办法
599
查看次数