ASP.NET WebApi ApiControllers の User.Identity [単体テスト用] をどのようにモックできますか?
ノート:
コントローラー メソッドの戻り値の一部はaync [Task]
、別のスレッドで実行されます。
ASP.NET WebApi ApiControllers の User.Identity [単体テスト用] をどのようにモックできますか?
ノート:
コントローラー メソッドの戻り値の一部はaync [Task]
、別のスレッドで実行されます。
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 を使用しているため、偽物を生成するための構文は異なる場合があります。