Я только что столкнулся с этой проблемой сегодня и задаюсь вопросом, есть ли у кого-нибудь представление о том, почему этот тест может не пройти (в зависимости от культуры). Цель состоит в том, чтобы проверить, содержат ли тестовый текст два пробела рядом друг с другом, что соответствует 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);
}
}