2016-03-25 28 views
0

標題正在追加像這樣。爲什麼當我檢查它們時,緩存控制標題值會反向?

context.Response.Headers.Append("Cache-Control", "max-age=0,no-cache,no-store"); 

當我相等性檢查(以下)爲一個單元測試,它是失敗,因爲3項是按相反的順序("no-store,no-cache,max-age=0")當我讀回。

Assert.IsTrue(resp.Result.Headers.GetValues("Cache-Control") 
    .First() 
    .Equals("max-age=0,no-cache,no-store")); 

任何想法爲什麼這可能是?或者,爲我的單元測試做一個比較的更好的方法?

回答

3

Headers 的屬性是NameValueCollectiondocumentation for NameValueCollection說:

該類可用於標題,查詢字符串和表單數據。

每個元素都是一個鍵/值對。

該類型的集合不保留元素的排序,枚舉集合時不保證特定順序。

所以,你不能依賴於特定的順序。

如果您確實想檢查設置的標頭值是否存在,您可以改爲執行字符串Contains操作。

然而,人們可能會爭辯說,你實際上會用這個來測試.NET框架(而不是你的代碼)。換句話說,你可能想重新考慮首先寫這樣的測試。

+1

嗯,該死的,好的答案。謝謝。 – Yatrix

相關問題