2016-05-29 3 views
3

Я занимаюсь некоторыми модульными тестами и не знаю, почему этот конкретный тест терпит неудачу.MSTest Assert.AreEqual терпит неудачу с строковым массивом

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

В моей настраиваемое представление двигателя заключается в следующем:

AreaMasterLocationFormats = new[] 
{ 
    "~/Areas/{2}/App/{1}/Views/{0}.cshtml", 
    "~/Areas/{2}/App/Shared/Views/{0}.cshtml" 
}; 

И в моем тесте это:

string[] expected = new[] 
{ 
    "~/Areas/{2}/App/{1}/Views/{0}.cshtml", 
    "~/Areas/{2}/App/Shared/Views/{0}.cshtml" 
}; 

CustomRazorViewEngine engine = new CustomRazorViewEngine(); 

Assert.AreEqual(expected, engine.AreaMasterLocationFormats); 

тест завершается с сообщением:

Message: Assert.AreEqual failed. Expected:<System.String[]>. Actual:<System.String[]>. 

(s/формат цитаты o не нравится второй lt в этом ...)

Я не уверен, почему, когда я отлаживаю тест, все выглядит хорошо.

+0

Не знаю, почему вы удалили свой ответ (кем бы вы ни были), но это было правильно ... – jleach

+0

На данный момент, я не был 't sure 'string []' на самом деле 'Collection'. – haim770

+0

@ haim770 Видимо, видя, как проходит тест, теперь я буду, кроме моего таймера, спасибо. – jleach

ответ

3

Вы должны использовать CollectionAssert вместо:

CollectionAssert.AreEqual(expected, engine.AreaMasterLocationFormats); 

См MSDN

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