Сегодня я столкнулся с этой проблемой и задаюсь вопросом, может ли кто-нибудь понять, почему этот тест может потерпеть неудачу (в зависимости от культуры). Цель состоит в том, чтобы проверить, содержат ли тестовый текст два пробела рядом друг с другом, что соответствует string.IndexOf
(даже если я говорю, что строка заменяет все вхождения двух пространств рядом друг с другом). После некоторого тестирования кажется, что \xAD
как-то вызывает эту проблему.
public class ReplaceIndexOfSymmetryTest
{
[Test]
public void IndexOfShouldNotFindReplacedString()
{
string testText = "\x61\x20\xAD\x20\x62";
const string TWO_SPACES = " ";
const string ONE_SPACE = " ";
string result = testText.Replace(TWO_SPACES, ONE_SPACE);
Assert.IsTrue(result.IndexOf(TWO_SPACES) < 0);
}
}