2012-01-25 1 views
4

MvcContrib.TestHelper.RouteTestingExtensions 클래스의 메서드를 찾아서 ShouldNotMap이라고합니다. BeouldBeIgnored가 있지만 IgnoreRoute 호출을 테스트하고 싶지 않습니다. 특정 들어오는 경로가 모든 리소스에 매핑되어서는 안된다는 것을 테스트하고 싶습니다.MvcContrib TestHelper를 사용하여 인바운드 경로를 매핑하지 않아야 함을 나타냅니다.

MvcContrib TestHelper를 사용하여이를 수행 할 수있는 방법이 있습니까?

업데이트 그냥 이것을 시도, 작동하는 것 같다. 이것이 올바른 방법입니까?

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

나는 ShouldBeNull를 찾지 못했습니다() 메소드 . 대신 "~/do/not/map/this"를 수행해야했습니다. Route(). ShouldEqual (null, ""); – JNappi

답변

1

나는 다음과 같은 찾고있는 생각 :이 경로가 StopRoutingHandler에 의해 처리되는 주장 장면 뒤에

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

.

0

나는 똑같은 것을 찾고 있었다. 내가 ShouldBeNull을 구현하기 위해 다음과 같은 확장 메서드를 추가 결국 짝수 짧은 ShouldNotMap :

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

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); 
     } 
    }