私の管理エリアに存在するWeb APIルートをテストしようとしています。エリアwebapiルートが解決されていません
これは、私がここでそうのようなルートプレフィックス[RoutePrefix( "管理者/ miscの")]
を持っているエリア内のルート定義
[HttpPut]
[Route("timezone/put/{timezone}", Name = "PutTimeZone")]
[AllowAnonymous]
[ResponseType(typeof(void))]
public IHttpActionResult PutTimeZone(string timezone)
{
/*Action body*/
}
である私のルートテストは
ですconst string route = "/admins/misc/timezone/put/-120";
RouteAssert.HasApiRoute(_httpConfiguration, route, HttpMethod.Put);
_httpConfiguration.ShouldMap(HttpMethod.Put, route)
.To<MiscApiController>(HttpMethod.Put, x => x.PutTimeZone("-120"));
私は、テストを実行すると、私が手MvcRouteTester.Assertions.AssertionException : Expected 'Administration', got no value for 'area' at url '/admins/misc/timezone/put/-120'.
私はあなたがMVCエリアを使用している場合は、限り、あなたは名前空間の標準 レイアウトを使用すると、エリア名は、お使いの コントローラタイプ名から抽出された領域に対してテストされますroute tester wiki page
で読みますルートによって選択されます。例: コントローラの完全修飾タイプ名が
MyWebApp.Areas.Blog.CommentController
の場合、予想される領域名は となります。
しかし、率直に言って、私はテストをパスするために何をすべきかについて何の手がかりも与えません。私の質問は何が欠けているのですか?
しかし、ルート領域は特にAsp.net Mvcのためのものであり、Webapiの亜種ではないようですが、webapiコントローラ – Cizaphil
で試してみましたが、テストはまだ同じ例外メッセージで失敗しています上記。 – Cizaphil
私はそれを認識していないし、私は答えが何であるか分からない、申し訳ありません。これまでのところ、ApiControllerを使用してみたことはありませんでした。あなたのApiControllerの名前空間は何ですか?あなたが正しく提供したwikiドキュメントを理解していれば、予想される名前空間は 'YourProjectName.Areas.Administration'です。それを確認できますか? – davke