2016-03-20 16 views
0

Şu anda birim testi için Moq kullanmayı öğreniyorum ve denetimlerde yönlendirme işlevini birim sınamaya çalıştığımda sorun yaşıyorum. Aslında http://www.danylkoweb.com/Blog/how-to-successfully-mock-httpcontext-BT'daki talimatları takip ettim. Soğuk aşağıdaki gibidir:Moq to unit test Controller MVC6'da yönlendirme işlevi

 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"]); 

Ancak, ben Asp.Net5 + MVC6 içinde RouteConfig bulmak mümkün değilim. RouteConfig'ten ziyade MvcApplication kullanarak bazı makaleler gördüm, ancak onu da bulamamıştım. Kimse beni bu problemle ilgili bazı makalelere yönlendirmek veya sorunu çözmek için yardımcı oluyor mu? Teşekkür ederim.

+0

'RouteConfig.RegisterRoutes' MVC6 şablonunun bir parçası değil. İzlediğiniz talimatlar, cevabınız için MVC framework – Nkosi

+0

Hi Nkosi'nin daha eski bir sürümü içindir. MVC6'da yönlendirme işlevi için sahte testi nasıl yapacağı konusunda bir fikrin olup olmadığını sorabilir miyim? Teşekkürler. – Ben

+0

Eh, testinizi düzenlerken 'RegisterRoutes''nın ne yaptığını yeniden oluşturmayı deneyebilirsiniz. Bu temelde ismin ima ettiği şeydi. rotaları kaydet. – Nkosi

cevap

3

onlar yolları test etmek için başlatma işe koşulması ile entegrasyon/fonksiyonel test etmenizi öneririz aşağıdaki cevap

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

bakınız.

+0

Merhaba Nkosi, örnek kodu gösterdiğiniz için teşekkür ederiz. Ancak, MVC6'da rotaların MapRoute işlevine sahip olmadığı anlaşılıyor. En yakın fonksiyon MapPageRoute. – Ben

+0

MVC6'da yönlendirme için kaynak kodu İşte. MVC5'ten 6'ya bir çok şey değişti, bu durum size MVC6 için nelerin geçerli olduğunu göstermelidir https://github.com/aspnet/Routing/tree/dev/src/Microsoft.AspNetCore.Routing – Nkosi

+0

Burada MVC6'da Yönlendirme ile ilgili başka bir makale var. Bunu nasıl ayarlayacağınıza bir göz atın ve daha sonra, http://stephenwalther.com/archive/2015/02/07/asp-net-5-deep-dive-routing – Nkosi

İlgili konular