2016-03-20 13 views
0

現在、ユニットテストにMoqを使用することを学んでおり、コントローラのルーティング機能をユニットテストしようとすると問題が発生します。私は実際にhttp://www.danylkoweb.com/Blog/how-to-successfully-mock-httpcontext-BTの指示に従った。寒さは以下の通りです:ユニットテストにMoqを使用MVC6のコントローラールーティング機能

 RouteCollection routes = new RouteCollection(); 
     RouteConfig.RegisterRoutes(routes); 
     moqRequest.Setup(e => e.AppRelativeCurrentExecutionFilePath).Returns("~/Home/Index"); 
     RouteData routeData = routes.GetRouteData(moqContext.Object); 
     // Assert 
     Assert.IsNotNull(routeData); 
     Assert.AreEqual("Home", routeData.Values["controller"]); 
     Assert.AreEqual("Index", routeData.Values["action"]); 

しかし、私はAsp.Net5 + MVC6でRouteConfigを見つけることができません。私はRouteConfigではなくMvcApplicationを使った記事を見ましたが、私はそれを見つけることができませんでした。誰でもこの問題に関するいくつかの記事を案内したり、問題を解決するのに役立つことができますか?ありがとうございました。

+0

'RouteConfig.RegisterRoutes'はMVC6テンプレートの一部ではありません。以下の手順は、MVCフレームワークの以前のバージョンのものです。 – Nkosi

+0

こんにちは。 MVC6のルーティング機能のモックテストをどうやって行うのか分かりますか?ありがとう。 – Ben

+0

「RegisterRoutes」があなたのテストを手配する際に何をしたかを再現することができます。それは基本的に名前が意味するものでした。登録ルート。 – Nkosi

答えて

3

は、彼らがルートをテストするために起動するブートストラップとの統合/機能テストを示唆して、次の答え

Unit testing routing in ASP.NET Core 1.0 (ex MVC 6)

を参照してください。

+0

こんにちは、私はサンプルコードを表示していただきありがとうございます。しかし、MVC6では、ルートにMapRoute関数がないように見えます。最も近い関数はMapPageRouteです。 – Ben

+0

MVC6でのルーティングのソースコードは次のとおりです。多くはMVC5から6に変更されているので、これはMVC6に適用されるものを表示するはずですhttps://github.com/aspnet/Routing/tree/dev/src/Microsoft.AspNetCore.Routing – Nkosi

+0

ここではMVC6のルーティングに関する別の記事です。それを設定する方法を見て、テストのために必要な部分を模擬しようとすることができますhttp://stephenwalther.com/archive/2015/02/07/asp-net-5-deep-dive-routing – Nkosi

関連する問題