8

ControllerActionInvokerユニットテストからコントローラーアクションを呼び出すために使用します

var controllerInvoker = new ControllerActionInvoker();
var result = controllerInvoker.InvokeAction(
                 testController.ControllerContext, "Default" );

パラメータを持つアクションを呼び出すにはどうすればよいですか?

[AcceptVerbs( HttpVerbs.Post )]
[ActionException( SomeAttribute )]
public SomeResult AddMethod( long[] Ids )
{
    //some code
}
4

3 に答える 3

1

ドキュメントから、IDictionary のパラメーターを 3 番目の引数として渡すことができる InvokeActionMethod メソッドを使用したいようです。

ControllerContext は、コントローラーがバインドに使用する追加データ (フィルター、モデル バインダー、ルート データ) を実際に保持します。引数は、ControllerContext を介して渡す必要があります。

コントローラーの単体テストに関する例を見つけました。

于 2009-07-17T19:47:44.557 に答える
0

単体テスト内から ControllerActionInvoker を使用しないでください。あなたは実際に何を達成しようとしていますか?

アクションの動作をテストしようとしている場合は、それらを直接呼び出すだけです (これらは単なる通常のメソッドです)。フィルターの動作をテストする場合は、フィルターのモック コンテキストを作成し、その OnXxx() メソッドを呼び出します。

于 2009-07-20T17:47:52.007 に答える