2016-03-25 5 views
0

ヘッダーのように追加されています。キャッシュコントロールヘッダーの値をチェックすると、その値が逆方向になるのはなぜですか?

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

Iは、ユニットテストのために(下)等価性チェックを行うと、私はそれを読み戻すときに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

HttpResponseHeadersプロパティは、NameValueCollectionです。 documentation for NameValueCollectionさんのコメント:

このクラスは、ヘッダー、クエリ文字列、フォームデータに使用できます。

各要素はキーと値のペアです。

このタイプのコレクションでは、要素の順序は保持されず、コレクションを列挙するときに特定の順序は保証されません。

したがって、特定の発注に依存することはできません。

実際に、設定されたヘッダー値が存在するかどうかを確認したい場合は、代わりに文字列Containsを実行できます。

しかし、実際には、これを使って.NETフレームワーク(あなたのコードではない)を単体テストすることになります。言い換えれば、最初にこのようなテストを書くことを再検討したいかもしれません。

+1

まあまあ、良い答えです。ありがとう。 – Yatrix

関連する問題