मैं इकाई परीक्षण बाहर OData नियंत्रकों के लिए प्रयास कर रहा हूँ, लेकिन एपीआई बदल गया है और पहले से सिफारिश तरीकों मैंने कोशिश काम नहीं करते - वर्तमान में मैंसही ढंग से यूनिट परीक्षण OData v6.0 नियंत्रक कैसे करें?
कोई गैर OData HTTP पंजीकृत मार्ग हो रही है। किसी भी विचार या संकेत के लिए
[TestMethod()] public void RankingTest() { var serviceMock = new Mock<IVendorService>(); serviceMock.SetReturnsDefault<IEnumerable<Vendor>>(new List<Vendor>() { new Vendor() { id = "1" } }); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/odata/Vendor"); ODataModelBuilder builder = new ODataConventionModelBuilder(); builder.EntitySet<Vendor>("Vendor"); var model = builder.GetEdmModel(); HttpRouteCollection routes = new HttpRouteCollection(); HttpConfiguration config = new HttpConfiguration(routes) { IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always }; // attempting to register at least some non-OData HTTP route doesn't seem to help routes.MapHttpRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); config.MapODataServiceRoute("odata", "odata", model); config.Count().Filter().OrderBy().Expand().Select().MaxTop(null); config.EnsureInitialized(); request.SetConfiguration(config); ODataQueryContext context = new ODataQueryContext( model, typeof(Vendor), new ODataPath( new Microsoft.OData.UriParser.EntitySetSegment( model.EntityContainer.FindEntitySet("Vendor")) ) ); var controller = new VendorController(serviceMock.Object); controller.Request = request; // InvalidOperationException in System.Web.OData on next line: // No non-OData HTTP route registered var options = new ODataQueryOptions<Vendor>(context, request); var response = controller.Get(options) as ViewResult; }
धन्यवाद:
जब ODataQueryOptions का दृष्टांत की कोशिश कर रहा नियंत्रक के प्राप्त विधि
मेरे वर्तमान कोड (this one आदि के उत्तर के आधार पर) में प्रदान किया जाने!
धन्यवाद, कि यह किया है लगता है! – kerray