1

ASP.NET WebApi ApiControllers の User.Identity [単体テスト用] をどのようにモックできますか?

ノート:

コントローラー メソッドの戻り値の一部はaync [Task]、別のスレッドで実行されます。

4

1 に答える 1

2

MVC コントローラーのテストでも同様のことをしなければなりませんでした。私がやったことは、コントローラーに偽の HttpContext をアタッチしてから、偽のコンテキストに GenericPrincipal をアタッチすることでした。

var myController = new SomeController();
var context = A.Fake<HttpContextBase>();
ControllerContext context = new ControllerContext( new RequestContext( context, new RouteData() ), myController );
myController.ControllerContext = context;
myController.HttpContext.User = new GenericPrincipal( new GenericIdentity( "bob" ), null );

私は FakeItEasy を使用しているため、偽物を生成するための構文は異なる場合があります。

于 2014-05-27T18:49:39.630 に答える