В дословной строке отсутствует возврат каретки - PullRequest
1 голос
/ 21 октября 2019

Я столкнулся со странной проблемой сегодня. У меня есть такая дословная строка:

var s = @"     0     1
0     0"

, то есть после новой строки. My Environment.NewLine настроен на \ r \ n

. Это часть модульного теста, и тесты работали в течение последних нескольких месяцев. Теперь, когда я запускаю свои тесты, приведенное выше объявление строки приводит к:

"     0     1\n     0     0"

вместо

"     0     1\r\n     0     0"

Это означает, что тесты не пройдены.

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

var s = "     0     1\r\n    0     0"

, и затем тесты проходят.

Кто-нибудь знает, что здесь может происходить?

Ответы [ 2 ]

2 голосов
/ 21 октября 2019

Ответ таков: Git (скорее всего) поменял местами окончания строк в файле только на LF. В зависимости от окончания строки файла в модульных тестах не очень хорошая идея, поэтому я изменил код, чтобы явно указывать символы новой строки во всех случаях, таким образом:

var s = "     0     1\r\n    0     0"
1 голос
/ 21 октября 2019

Если вы хотите использовать строку в модульном тесте, лучше убедиться, что содержимое всегда одинаково. Я предлагаю объявить это так:

var s = $"     0     1{Enviroment.NewLine}0     0";
...