2011-06-22 38 views
1

有沒有辦法在ASP.NET中設置HttpContext.Current.Request.Browser.Type。這是一個只讀的字符串屬性。所以你不能真的只是給它分配一個字符串。嘗試初始化HttpBrowserCapabilities類型的Browser屬性,但它只有一個構造函數,並且不帶任何參數,並且瀏覽器類型仍爲null。我希望能夠爲瀏覽器設置Type的原因是我的單元測試失敗,因爲Type屬性爲null。在ASP.NET中設置HttpContext.Current.Request.Browser.Type

編輯每空檢查評論: 我可以肯定地修改代碼來檢查null,但這將只是我的單元測試,因爲當請求來自瀏覽器,該值永遠不會爲空。因此,不那麼興奮。但它可能是我最後的手段。

+0

對我來說,改變測試來解決空瀏覽器類型的可能性會更容易。 – asawyer

回答

0

您可能想要考慮重構代碼以使用HttpContextBase而不是直接依賴具體類型。

通過這樣做,您可以簡單地創建一個提供所需行爲的存根對象。最終實現您自己的HttpBrowserCapabilitiesBase對象。

然後,您將完全控制在單元測試期間使用您的模擬類型。事實上,這是他們創造的。

1

你可以定義你自己的瀏覽器定義文件,然後ASP.net將使用它。退房http://forums.asp.net/p/955969/1176101.aspx

所以,如果你知道哪個瀏覽器失敗,你可以爲它設置一個瀏覽器文件。但是,我同意檢查空值更有意義,因爲它以這種方式考慮了更多可能性。