2016-03-25 8 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 property of class HttpResponse является NameValueCollection. documentation for NameValueCollection говорит:

Этот класс может использоваться для заголовков, строк запроса и данных формы.

Каждый элемент представляет собой пару ключ/значение.

Коллекции этого типа не сохраняют порядок элемента, и при перечислении коллекции не гарантируется конкретный заказ.

Таким образом, вы не можете положиться на конкретный заказ.

Если вы действительно хотите проверить, имеются ли значения заголовка набора, вы можете выполнить операцию Contains.

Можно было бы утверждать, однако, что вы на самом деле должны быть модульным тестированием платформы .NET (а не вашего кода) с этим. Другими словами, вы, возможно, захотите пересмотреть такое испытание в первую очередь.

+1

Хорошо, черт возьми, хороший ответ. Благодарю. – Yatrix

Смежные вопросы