使用ControllerActionInvoker进行单元测试以使用参数调用操作

use*_*322 8 asp.net-mvc unit-testing controlleractioninvoker

ControllerActionInvoker用来调用单元测试的控制器动作

var controllerInvoker = new ControllerActionInvoker();
var result = controllerInvoker.InvokeAction(
                 testController.ControllerContext, "Default" );
Run Code Online (Sandbox Code Playgroud)

如何使用它来调用具有参数的动作?

[AcceptVerbs( HttpVerbs.Post )]
[ActionException( SomeAttribute )]
public SomeResult AddMethod( long[] Ids )
{
    //some code
}
Run Code Online (Sandbox Code Playgroud)

cfe*_*uke 1

从文档来看,您似乎想要使用 InvokeActionMethod 方法,该方法允许您将 IDictionary 中的参数作为第三个参数传递。

ControllerContext 实际上携带了控制器将用于绑定的附加数据(过滤器、模型绑定器、路由数据)。您的参数需要通过 ControllerContext 传递。

我找到了一个关于单元测试控制器的例子