Assert.AreEqual не работает в модульном тесте

У меня есть следующий модульный тест:

string MtrlCode = "0";
Assessment target = new Assessment(MtrlCode);

List<string> EdgeCaseSymbolCodes = new List<string>(); //More than 3
EdgeCaseSymbolCodes.Add("FLA");
EdgeCaseSymbolCodes.Add("HAR");
EdgeCaseSymbolCodes.Add("COR");
EdgeCaseSymbolCodes.Add("ENVON");
EdgeCaseSymbolCodes.Add("ENVR");
EdgeCaseSymbolCodes.Add("EXP");

target.HazardSymbols = EdgeCaseSymbolCodes;

List<string> EdgeCaseSymbolCodesExpected = new List<string>(); //Should be 3
EdgeCaseSymbolCodesExpected.Add("FLA");
EdgeCaseSymbolCodesExpected.Add("HAR");
EdgeCaseSymbolCodesExpected.Add("COR");

System.Windows.Forms.MessageBox.Show(EdgeCaseSymbolCodesExpected[0] + EdgeCaseSymbolCodesExpected[1] + EdgeCaseSymbolCodesExpected[2] + " = \n" + target.HazardSymbols[0] + target.HazardSymbols[1] + target.HazardSymbols[2]);

Assert.AreEqual<List<string>>(EdgeCaseSymbolCodesExpected, target.HazardSymbols, "COSHH_2008.Custom_Classes.Assessment.setHazardSymbols Edge Case did not return the expected value.");

Который проверяет крайний случай (время, когда в List больше, чем 3 элемента), при этом желаемый результат - это возврат только первых 3.

В настоящее время тест не проходит, и мне пришлось прибегнуть к использованию MessageBox , чтобы заглянуть внутрь теста (из-за точки останова не достигаются!).

Насколько я могу судить, элементы те же самые, однако я понимаю, что с объектом List может быть что-то другое, но я не вижу этого, поскольку точки останова никогда не были ударять.

Я не могу найти окно модулей в Visual Studio 2005.

Что вы будете делать дальше?

6
задан m.edmondson 3 March 2011 в 12:37
поделиться