Using the MvcContrib TestHelper to Confirm that an Incoming Route Should Not Be Displayed

Looked at a method in the MvcContrib.TestHelper.RouteTestingExtensions class called ShouldNotMap. There is ShouldBeIgnored, but I do not want to test the IgnoreRoute call. I want to check that a specific incoming route should not be mapped to any resource.

Is there a way to do this using the MvcContrib TestHelper?

Update

Just tried it and it works. Is it correct?

 "~/do/not/map/this".Route().ShouldBeNull(); 
+4
source share
2 answers

I think you are looking for the following:

 "~/do/not/map/this".ShouldBeIgnored(); 

Behind the scenes, this claims that the route is being handled by StopRoutingHandler.

+1
source

I was looking for the same thing. As a result, I added the following extension methods to implement ShouldBeNull and the even shorter ShouldNotMap :

In RouteTestingExtensions.cs :

  /// <summary> /// Verifies that no corresponding route is defined. /// </summary> /// <param name="relativeUrl"></param> public static void ShouldNotMap(this string relativeUrl) { RouteData routeData = relativeUrl.Route(); routeData.ShouldBeNull(string.Format("URL '{0}' shouldn't map.", relativeUrl)); } /// <summary> /// Verifies that the <see cref="RouteData">routeData</see> is null. /// </summary> public static void ShouldNotMap(this RouteData routeData) { routeData.ShouldBeNull("URL should not map."); } 

In GeneralTestExtensions.cs :

  ///<summary> /// Asserts that the object should be null. ///</summary> ///<param name="actual"></param> ///<param name="message"></param> ///<exception cref="AssertFailedException"></exception> public static void ShouldBeNull(this object actual, string message) { if (actual != null) { throw new AssertFailedException(message); } } 
0
source

Source: https://habr.com/ru/post/1392997/


All Articles