среда, 20 января 2016 г.

Юнит тесты...

В своем проекте я некоторое время назад использовал сторонний компонент XComboBox и наполнил его список доступных элементов вот таким образом:

            foreach(object obj in list) {
                comboBox.Items.Add(obj.Name);
            }

Однако через очень небольшое время один из пользователей сообщил мне, что некоторые тексты с символами HTML разметки показываются неверно. Это частая ошибка в разработке веб приложений и решается она довольно легко с помощью вызова всего лишь одного метода:

            foreach(object obj in list) {
                comboBox.Items.Add(HttpUtility.HtmlEncode(obj.Name));
            }

На этот код я написал юниттест и проверил что в контроле текст в доступных элементах действительно правильно обработан для различных ситуаций. В таком виде код успешно помогал пользователям делать их работу несколько лет...

Однако недавно пришел другой клиент и сообщил, что моя программа замечательная, только некоторые символы его родного турецкого языка она превращает в "ü"... Видимо опять кодировка... Но тесты ведь ходят... Как же так?