В приложении есть ресурсы в которых есть строки с переносом строки (NewLine aka "\r\n"), но при получении строк через статический класс MyResource.MyString символ "\n" не превращается в настоящий перенос строки, а так и остается "\n". (как будто в ресурсе храниться "\\n")
Пробовал в редакторе ресурсов вместо "\n" жать Shift+Enter — перенос в ресурсе появляется, а при выводе на html-странице строки MyResource.MyString перенос отсутствует видимо из-за того, что вместо переноса должен быть <br/>.
Все усложняется наличем UI-тестов с необходимостью проверять вхождение строки MyResource.MyString в тексте странице, что довольно проблематично и выливается в написание пары маленьких костылей для формирования нужной строки из строки ресурса и для поиска вхождения с учетом специфики переноса в html (тэг <br/>).
Костыли писать не любитель, поэтому прошу подсказать более красивое решение, если такое имеется.
Здравствуйте, Ocenochka, Вы писали:
O>В приложении есть ресурсы в которых есть строки с переносом строки (NewLine aka "\r\n"), но при получении строк через статический класс MyResource.MyString символ "\n" не превращается в настоящий перенос строки, а так и остается "\n". (как будто в ресурсе храниться "\\n") O> Пробовал в редакторе ресурсов вместо "\n" жать Shift+Enter — перенос в ресурсе появляется, а при выводе на html-странице строки MyResource.MyString перенос отсутствует видимо из-за того, что вместо переноса должен быть <br/>. O> Все усложняется наличем UI-тестов с необходимостью проверять вхождение строки MyResource.MyString в тексте странице, что довольно проблематично и выливается в написание пары маленьких костылей для формирования нужной строки из строки ресурса и для поиска вхождения с учетом специфики переноса в html (тэг <br/>).
O> Костыли писать не любитель, поэтому прошу подсказать более красивое решение, если такое имеется.
про первую часть — я так и не понял есть проблема или нет:
— да если в редакторе надо Shift-Enter
— да надо заменять переносы строк на <br/> при выводе в html
про UI тесты — смотря что они тестируют?
что в нужном месте текст из ресурса присутсвует? тогда лучше сделать режим когда вместо текста из ресурса будет выводится само имя ресурса.
или что из правильного ресурса? тогда это можно тестировать отдельно
Здравствуйте, mogadanez, Вы писали:
M>про первую часть — я так и не понял есть проблема или нет: M>- да если в редакторе надо Shift-Enter M>- да надо заменять переносы строк на <br/> при выводе в html
В html'е перенос строки естественно не отображается, поэтому его нужно менять на <br/>, что не очень красиво, но все равботает и вполне логично. Просто я хотел иметь одни ресурсы и для веба и для десктопа.
В принципе, вариант — хранить обычные переносы, а для веба переносы менять на <br/>.
Можно считать, что эта проблема решена.
M>про UI тесты — смотря что они тестируют?
Наличие на определенных страницах определенного текста, который в ресурсах.
То же в принципе, решается, если искать не вхождение текста, а вхождение разметки, иначе <br/> не будет находится.
В общем, спасибо что помогли понять как с этим работать.
Здравствуйте, Ocenochka, Вы писали:
O>Здравствуйте, mogadanez, Вы писали:
M>>про первую часть — я так и не понял есть проблема или нет: M>>- да если в редакторе надо Shift-Enter M>>- да надо заменять переносы строк на <br/> при выводе в html
O> В html'е перенос строки естественно не отображается, поэтому его нужно менять на <br/>, что не очень красиво, но все равботает и вполне логично. Просто я хотел иметь одни ресурсы и для веба и для десктопа. O> В принципе, вариант — хранить обычные переносы, а для веба переносы менять на <br/>. O> Можно считать, что эта проблема решена.
M>>про UI тесты — смотря что они тестируют? O> Наличие на определенных страницах определенного текста, который в ресурсах. O> То же в принципе, решается, если искать не вхождение текста, а вхождение разметки, иначе <br/> не будет находится.
ресурсов много(типа многоязычность) или один? если один я бы сто процентов для теста сделал вывод ключа ресурса вместо текста. т.е. на странице будет "MyResource.MyString" вместо "Привет пользователь <br/> вас приветствует уникальная информационаая система"
заодно это избавит от необходимости править тесты при изменении текста в ресурсах
Здравствуйте, mogadanez, Вы писали:
M>>>про UI тесты — смотря что они тестируют? O>> Наличие на определенных страницах определенного текста, который в ресурсах. O>> То же в принципе, решается, если искать не вхождение текста, а вхождение разметки, иначе <br/> не будет находится.
M>ресурсов много(типа многоязычность) или один? если один я бы сто процентов для теста сделал вывод ключа ресурса вместо текста. т.е. на странице будет "MyResource.MyString" вместо "Привет пользователь <br/> вас приветствует уникальная информационаая система"
Т.е. прямо на страницу чистым текстом выводить "MyResource.MyString"?
А если ресурс такго вида: "Спасибо пользователь, ваш guid — {0}", и в тесте нужно убедиться, что правильный гуид отобразился?
Вообще, интересная идея...
M>заодно это избавит от необходимости править тесты при изменении текста в ресурсах
А зачем их править? Я в тестах для сравнения те же строки из ресурсов достаю.
Здравствуйте, mogadanez, Вы писали:
O>> А зачем их править? Я в тестах для сравнения те же строки из ресурсов достаю. M>ну тогда можно его через тот же контур прогонять который \n на br меняет
ага, просто мне как-то странно было подобные вещи делать руками, вот я и подумал, что может
просто не знаю каких-нибудь готовых средств для подобных задач...