2012-01-25 2 views
4

Recherche d'une méthode sur la classe MvcContrib.TestHelper.RouteTestingExtensions nommée ShouldNotMap. Il y a ShouldBeIgnored, mais je ne veux pas tester une invocation IgnoreRoute. Je veux tester qu'une route entrante spécifique ne doit être mappée à aucune ressource.Utilisation de MvcContrib TestHelper pour affirmer qu'une route entrante ne doit pas être mappée

Existe-t-il un moyen de le faire en utilisant MvcContrib TestHelper?

Mise à jour

Juste essayé, et il semble fonctionner. C'est la bonne route?

"~/do/not/map/this".Route().ShouldBeNull(); 
+0

Je n'ai pas trouvé une méthode ShouldBeNull() . Au lieu de cela, j'ai dû faire "~/do/not/map/this" .Route(). ShouldEqual (null, ""); – JNappi

Répondre

1

Je pense que vous êtes à la recherche de ce qui suit:

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

Dans les coulisses ce affirme que la route est traitée par StopRoutingHandler.

0

Je cherchais la même chose. J'ai fini par ajouter les méthodes d'extension suivantes pour mettre en œuvre ShouldBeNull et encore plus court ShouldNotMap:

En 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."); 
    } 

En 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); 
     } 
    } 
Questions connexes