2012-01-25 7 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); 
     } 
    } 
関連する問題